R问题。数字变量与非数字和“名称”功能

时间:2010-05-19 01:34:21

标签: r statistics numeric

 > 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]?

谢谢!

2 个答案:

答案 0 :(得分:1)

scores是一个矩阵,而不是data.frame。使用data.frame创建data.frame,而不是cbind

矩阵中的所有列都属于同一类型,在这种情况下,使用cbind将所有元素强制转换为数字。

答案 1 :(得分:0)

您发布的代码似乎很有趣。如果在代码开始时还没有一个名为UCNA.scores的对象,尝试将其传递给summary函数会产生错误,因为您不能只是按名称引用矩阵列。另一件事是为矩阵分配名称命名元素,而不是列。如果你在data.frame中得分并在创建后立即附加它,那么你的输出就是我所期望的。

即使抛开这些东西,我也无法重现你的问题。如果确实缺少部件,你能发布一些示例数据和/或显示其他任何内容吗?