2014-10-17 10 views
5

mam pewne dane w wynikach danych 3-kolumnowej ramie podczas drukowania wyników widzę:nie można uzyskać dostępu do kolumny ramki danych

results 

TIMESTAMP     SYMBOL_NAME   "t.price" 
1 2014-10-17 14:00:00  GOOG     400.25 

zauważy „” wokół t.price kolumny

Kiedy Idę, aby uzyskać dostęp do kolumny t.price, tak jak wraca null.

results$t.Price 
NULL 

kiedy robię

names(results) 

widzę

[1] "TIMESTAMP"  "SYMBOL_NAME"  "\"t.PRICE\"" 

Czy możesz mi powiedzieć, co się dzieje i dlaczego "" pojawia się ani w jaki sposób mogę uzyskać dostęp t.price?

+0

Co się stanie, jeśli wpiszesz 'wyniki $„t.PRICE”' lub 'wyniki $ \„t.PRICE \”'? – dg99

+0

Coś zdarzyło się, gdy przeczytałeś dane - prostą, szybką zmianą jest zmiana nazwy zmiennych poprzez ... nazwy (wyniki) <- c (["TIMESTAMP", "SYMBOL_NAME", "t.PRICE") '. spójrz na 'str (wyniki)' – user20650

+0

możesz również użyć wyników [, 3] aby uzyskać dostęp do tej kolumny – Sarah

Odpowiedz

3

Spróbuj tego:

names(results) <- make.names(names(results)) 

To taka sama funkcja, która zostanie zastosowana, gdy używane są read.table i jego potomkowie.

+1

Myślę, że to nie jest zbyt ważne, ale kiedy to uruchomię, otrzymuję 'X.t.price' dla ostatniej kolumny. Czy to właśnie dostajesz? –

+0

Nie mam oryginalnego obiektu, ponieważ nie został przedstawiony w odtwarzalnej formie, ale tak, właśnie to otrzymuję teraz, gdy używam 'make.names', i do następnego pytania, które nie jest tym, co bym przewidział. –

3

Możesz usunąć dodatkowe cytaty z gsub

results 
#    TIMESTAMP SYMBOL_NAME "t.price" 
# 1 2014-10-17 14:00:00  GOOG 400.25 
results$t.price 
# NULL 
names(results)[3] <- gsub('\"', "", names(results)[3]) 
results$t.price 
# [1] 400.25 

Na wszelki wypadek, może chcesz uruchomić go na wszystkich nazw zestawu danych (wystarczy usunąć zarówno [3]).

3

Niezależnie od źródła danych, kolumna tPrice jest otoczona cudzysłowami. Te z kolei są usuwane przez \ as \ "jak inaczej" "byłby końcem ciągu o długości 0.

Metody do obejścia tego są sugerowane przez komentarze, możesz uzyskać do nich dostęp poprzez indeks kolumny lub przez zmianę nazwy kolumn, które mogą być wykonywane przez przypisanie do nazwisk.

names(results) <- c("name1", "name2", "name3") 
Powiązane problemy