这个问题可能已经重复过了。但即使经过前面的链接,我也无法解决这个问题。我有一个文件如下:
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 :(得分:1)
嗯,由于某种原因,您的数据是非数字的:您是否尝试过使用as.numeric()将其强制转换为正确的类型?
编辑:使用unlist()将其转换为列表类型似乎是答案
答案 1 :(得分: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)