2013-02-08 10 views
22

Mam bardzo prostą tablicę, na której chcę uruchomić analizę krzywej ROC. Ale po pierwsze, gdy próbuję zmusić dane do rodzaju czynnika za pomocą polecenia table[1]<-factor(table[1]), pojawia się błądDostęp do kolumny z df [col] daje: Błąd 'x' musi być atomowy dla 'sort.list'

Error in sort.list(y) : 'x' must be atomic for 'sort.list' 
Have you called 'sort' on a list? 

kilka rzędów próbka z danymi są podane poniżej

GRADE TRUE-GRADE 

benign Benign 
benign Benign 
benign Benign 
benign Benign 
benign Benign 
benign Benign 
benign Malignant 
benign Malignant 
indeterminate Benign 
indeterminate Benign 
indeterminate Benign 
indeterminate Benign 
indeterminate Benign 
indeterminate Benign 
indeterminate Benign 
indeterminate Benign 
indeterminate Benign 
indeterminate Benign 
indeterminate Benign 
indeterminate Benign 
indeterminate Benign 
indeterminate Malignant 
indeterminate Malignant 
indeterminate Malignant 
likely benign Benign 
likely benign Benign 
likely benign Benign 

Czy ktoś może mi powiedzieć, co ja robić źle? Wynik STR (tabela) podano poniżej:

data.frame': 127 obs. of 2 variables: 
$ GRADE  : Factor w/ 5 levels "benign","indeterminate",..: 1 1 1 1 1 1 1 1 1 

$ BENIGN.MALIGN: Factor w/ 2 levels "Benign","Malignant": 1 1 1 1 1 1 1 1 1 1 ... 

Odpowiedz

31

Funkcja [ stosowany do ramki danych wraca do ramki danych (jeśli jest wykorzystywany tylko jeden argument). Jeśli chcesz uzyskać dostęp do pojedynczej kolumny i zwrócić ją jako wektor, musisz zamiast tego użyć [[.

table[1] <- factor(table[[1]]) 

Ale może to nie być konieczne, ponieważ obie kolumny są czynnikami (patrz swoje wyjście str).

Przy okazji: table nie jest dobrą nazwą obiektu, ponieważ jest to również nazwa podstawowej funkcji R.

+0

Spędziłem tak długo próbując użyć 'as.vector (table [1])', aby uzyskać wektor. Dlaczego nie powoduje to tego samego wyniku co 'tablica [[1]]'? –

+0

@alexpmil Działa z 'unlist (table [1])'. –

Powiązane problemy