web-dev-qa-db-ja.com

df [col]を使用して列にアクセスすると、エラー「x」は「sort.list」に対してアトミックでなければなりません

ROC曲線分析を実行する非常に単純な配列があります。しかし、最初に、コマンドtable[1]<-factor(table[1])を使用してデータをFactorタイプに強制しようとすると、エラーが発生します

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

データからのサンプル行はほとんどありません

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

誰かが私が間違っていることを教えてもらえますか? str(table)の結果は次のとおりです。

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

データフレームに適用される[関数は、データフレームを返します(引数が1つだけ使用されている場合)。単一の列にアクセスしてベクトルとして返す場合は、代わりに[[を使用する必要があります。

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

ただし、両方の列が要因であるため、これは必要ない場合があります(str出力を参照)。

ちなみに、tableは基本的なR関数の名前でもあるため、オブジェクトには適した名前ではありません。

31
Sven Hohenstein