0
 > scores=cbind(UNCA.score, A.score, B.score, U.m.A, U.m.B)

 > names(scores)=c('UNCA.scores', 'A.scores', 'B.scores','UNCA.minus.A', 'UNCA.minus.B')

 > names(scores)
 [1] "UNCA.scores"  "A.scores"     "B.scores"     "UNCA.minus.A" "UNCA.minus.B"

 > summary(UNCA.scores)
  X6.69230769230769
  Min.   : 4.154   
  1st Qu.: 7.333   
  Median : 8.308   
  Mean   : 8.451   
  3rd Qu.: 9.538   
  Max.   :12.000   

> is.numeric(UNCA.scores)
 [1] FALSE

> is.numeric(scores[,1])
 [1] TRUE

私の質問は、UNCA.scores と score[,1] の違いは何ですか? UNCA.scores は data.frame 'scores' の最初の列ですが、1 つは数値で、もう 1 つは数値ではないため、同じものではありません。

UNCA.scores が単なるラベルである場合、「scores[,1]」と同等にするにはどうすればよいですか?

ありがとう!

4

2 に答える 2

1

scoresdata.frame ではなく、マトリックスです。data.frameではなく、data.frame を作成するために使用しますcbind

行列内のすべての列は同じ型であり、この場合、使用するとcbindすべての要素が数値に強制されます。

于 2010-05-19T02:30:06.100 に答える
0

投稿されたコードに何かおかしな点があるようです。コードの開始時に UCNA.scores というオブジェクトがまだ存在しない場合、それを集計関数に渡そうとするとエラーが発生します。これは、行列の列を名前だけで参照することはできないためです。もう 1 つのことは、行列に名前を割り当てると、列ではなく要素に名前が付けられることです。あなたの出力は、スコアを data.frame にして作成した直後に添付した場合に期待するものです。

これらを別にしても、あなたの問題を再現することはできません。実際に欠落している部品がある場合、サンプルデータを投稿したり、他に何が起こっているかを示したりできますか?

于 2010-05-19T04:10:35.770 に答える