【发布时间】:2017-07-05 07:34:30
【问题描述】:
我已经研究了有关此问题的其他线程,但找不到简单的解决方案。我已经从 Excel 表格中导入数据,并将它们加入到通常如下所示的列表中:
> Hemo
[[1]]
V1 V2 V3 V4 V5 V6 V7
1 0d 3d 6d 9d 12d 15d 18d
2 10 40 20 60 50 30 40
3 20 30 30 30 30 30 30
4 20 20 30 20 40 20 50
[[2]]
V1 V2 V3 V4 V5 V6 V7
1 0d 3d 6d 9d 12d 15d 18d
2 0 10 10 0 0 0 0
3 0 10 20 20 20 0 0
4 0 0 10 20 20 0 0
但是我希望它们看起来像这样(这是一个数组):
, , 1
0d 3d 6d 9d 12d 15d 18d
V2 10 40 20 60 50 30 40
V3 20 30 30 30 30 30 30
V4 20 20 30 20 40 20 50
, , 2
0d 3d 6d 9d 12d 15d 18d
V2 0 10 10 0 0 0 0
V3 0 10 20 20 20 0 0
V4 0 0 10 20 20 0 0
在第一种情况下,所有元素都是字符,我无法将它们强制转换为数字。最终,我想将第一个列表转换为第二个数组,其中第一个导入的行作为列名。必须有一些包可以做到这一点?请让我们找到一个简单的解决方法,因为我是新手。谢谢
【问题讨论】:
-
你使用lapply函数了吗???
lapply(Hemo, as.numeric) -
解决起来并不难,但最好从一开始就以正确的格式导入。你是怎么看excel表格的?可能有一个 hear 或 colnames 参数可以设置为 TRUE,然后数据可能会被自动识别为数字,您不需要这样做
-
它会更像
lapply(Hemo,function(m){names(m)<- m[1,];m <- as.numeric(m[2:nrow(m),])}) -
是的,我正在重新导入所有文件,然后指定标题。我仍然认为转换应该更容易,但是对象中的因素解释存在一些问题,现在我已经超出了。
-
BTW @R.B as.numeric() 返回一些其他数字,这些数字是一些属性,我尝试了很多不同的方法。