0

这个问题可能已经重复了。但即使经过前面的链接,我也无法解决这个问题。我有一个文件如下:

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

谁能帮我知道如何纠正这个问题?我为类似文件创建了密度图,但没有收到此错误。它仅适用于该文件。

感谢您的帮助。提前致谢..

4

2 回答 2

2

好吧,由于某种原因,您的数据是非数字的:您是否尝试过使用 as.numeric() 将其强制转换为正确的类型?

编辑:使用 unlist() 将其转换为列表类型似乎是答案

于 2012-12-07T12:54:11.397 回答
0

我遇到了同样的问题,我可以通过以下方式解决它:

a<- density(treeDF$real)
plot(a$x, a$y, col="turquoise2")
b<- density(treeDF$rpart)
lines(b$x, b$y, col="deeppink3")
c<- density(treeDF$rpart_Fourier)
lines(c$x, c$y, col="blue")
legend("topright", legend = c("real value", "rpart()", "rpart() + Fourier tem"),
    col=c("turquoise2", "deeppink3", "blue"), lty=1:1, cex=0.8, box.lty = 0)

在此处输入图像描述

于 2018-08-09T13:44:57.537 回答