2013-02-08 3 views
22

J'ai un tableau très simple sur lequel je veux exécuter une analyse de courbe ROC. Mais d'abord, lorsque je tente de forcer des données dans le type de facteur en utilisant la commande table[1]<-factor(table[1]), je reçois l'erreurL'accès à la colonne avec df [col] donne: Erreur 'x' doit être atomique pour 'sort.list'

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

lignes Peu d'échantillons à partir des données sont donnons ci-dessous

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 

que quelqu'un peut me dire ce que je suis mal faire? résultat de str (tableau) est donnée ci-dessous:

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 ... 

Répondre

31

La fonction [ appliquée à une trame de données renvoie une trame de données (si un seul argument est utilisé). Si vous souhaitez accéder à une seule colonne et la renvoyer en tant que vecteur, vous devez utiliser [[ à la place.

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

Mais cela peut ne pas être nécessaire puisque les deux colonnes sont des facteurs (voir votre sortie str). A propos: table n'est pas un bon nom pour un objet, puisqu'il est aussi le nom d'une fonction R de base.

+0

J'ai passé tellement de temps à essayer d'utiliser 'as.vector (table [1])' pour sortir un vecteur. Pourquoi cela ne produit-il pas la même sortie que 'table [[1]]'? –

+0

@alexpmil Fonctionne avec 'unlist (table [1])'. –

Questions connexes