2012-12-07 98 views
0

此问题可能已被重复。但即使经历了前面的链接,我也无法解决这个问题。我有一个文件如下:density.default错误:x必须是数字

data <- read.table("data.txt", header=TRUE) 

      Samp1   Samp2  Samp3 
cg00000029 0.79015390399987 0.8301816 0.8966661 
cg00000108 0.970260858767027 0.9655997 0.9699428 
cg00000109 0.948456317952246 0.9209855 0.9325146 
cg00000165 0.267769194351135 0.2370634 0.3867273 

我希望创建一个密度图列(说Samp1)。当我用下面的

>plot(density(na.omit(data$Samp1)), col="black") 

我得到以下错误:

Error in density.default(na.omit(data$Samp1)) : argument 'x' must be numeric 

谁能帮我知道如何纠正该问题?我为类似的文件创建了密度图,但没有得到这个错误。这只是为了这个文件。

您的帮助表示赞赏。 在此先感谢..

+0

如果您不能绘制“数据$ SAMP1”,而不是“IMA $ SAMP1”? – RoryB

+0

对不起,这是我在输入这个问题时犯的错误。我将编辑它..所以我绘制数据$ Samp1' – Letin

+0

错误发生后立即从'traceback()'输出,以及'str(data)'的输出可能是有用的。 – MvG

回答

1

那么,由于某种原因,你的数据是非数字的:你有没有尝试过使用as.numeric()将它强制为正确的类型?

编辑:使用不公开()把它转换成一个列表类型似乎是答案

+0

是的,我没有尝试类似“data_new < - as.numeric(数据)”,我得到一个错误“错误:(列表)对象不能被强制键入'双'” – Letin

+0

在这种情况下,你可能需要unlist )函数,它应该允许你转换出一个列表对象。 – RoryB

+0

@RoryB ..出于某种原因,此URL不在这里打开..你可以再次发送更正的URL或告诉我该怎么办? – Letin

相关问题