【发布时间】:2019-04-05 07:21:14
【问题描述】:
我有一个包含名称列和行的大型数据框。由于某种原因,当我使用下面的 sapply 函数检查时,数据框中的数字被列为字符。我试图更改为如下数字,但它更改了数据框 - 从行中删除名称并且不再是数据框。我无法将要手动更改的列列为 >100 列,将整体基因 ID 名称列为列名称,将 DE1 等列为行名称。数据框是样本。 数据示例如下所示:
EN00000345 EN00000456 EN00000067
DE1 1.47 7.2 -1.23
DR16 3.4 6.5 0.2
C20 2.7 8.7 7.8
DR12 4.5 3.2 12.1
`````````
sapply(samples, mode)
fwrite(samples, "some.name.temp")
samples<- fread("some.name.temp", colClasses = "numeric")
also tried
samples <- lapply(samples, function(x) as.numeric(as.character(x)))
返回数据不再是数据框,看起来像:
EN00000345 EN00000456 EN00000067
1 1.47 7.2 -1.23
2 3.4 6.5 0.2
3 2.7 8.7 7.8
【问题讨论】:
-
试试
samples[] <- lapply(samples, function(x) as.numeric(as.character(x))) -
如果你有
list输出到samples,它应该是一个list的向量,但在输出中显示它不是这样的。你能检查一下原始数据集的str吗 -
原始数据集的结构是字符,您建议我尝试并输出的代码会删除行名。不过谢谢你
-
如果它是 data.frame,它应该可以工作。那么可能不是data.frame
-
好的,我会仔细检查。谢谢你
标签: r