> 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和得分[,1]之间有什么区别? UNCA.scores是data.frame'得分'中的第一列,但它们不是一回事,因为一个是数字而另一个不是。
如果UNCA.scores只是这里的一个标签,我怎么能让它等同于'得分[,1]?
谢谢!
答案 0 :(得分:1)
scores
是一个矩阵,而不是data.frame。使用data.frame
创建data.frame,而不是cbind
。
矩阵中的所有列都属于同一类型,在这种情况下,使用cbind
将所有元素强制转换为数字。
答案 1 :(得分:0)
您发布的代码似乎很有趣。如果在代码开始时还没有一个名为UCNA.scores的对象,尝试将其传递给summary函数会产生错误,因为您不能只是按名称引用矩阵列。另一件事是为矩阵分配名称命名元素,而不是列。如果你在data.frame中得分并在创建后立即附加它,那么你的输出就是我所期望的。
即使抛开这些东西,我也无法重现你的问题。如果确实缺少部件,你能发布一些示例数据和/或显示其他任何内容吗?