FM *_*hof 15 r reshape melt mothur
我正在处理来自mothur的稀疏输出,它基本上给我一个数据集,其中包含采样的序列数和几个样本中的唯一序列数.我想使用ggplot2来可视化这些数据,因此需要使用melt从a wide到long格式.
问题是我发现由于错误导致无法完成这项工作melt.这基本上说明了
错误:数据中找不到id变量:1,3,6,(...等等)
由于原始数据集的大小,在此处共享它将是不切实际的,但是应该能够使用以下代码重新创建相同的问题:
a<-seq(0,300,3)
b<-runif(length(a))
c<-runif(length(a))
d<-as.data.frame(cbind(a,b,c))
d$a<-as.factor(d$a)
melt(d,d$a)
Run Code Online (Sandbox Code Playgroud)
这给出了完全相同的错误:
错误:数据中找不到id变量:0,3,6,9,(...)
我没有看到我做错了什么.我在ubuntu服务器12.04上使用R 2.15.1.功能reshape::melt和reshape2::melt结果都是相同的错误.
And*_*rie 12
你应该使用:
melt(d, id.vars="a")
a variable value
1 0 b 0.019199459
2 3 b 0.693699677
3 6 b 0.937592641
4 9 b 0.299259963
5 12 b 0.485403439
...
Run Code Online (Sandbox Code Playgroud)
在以下的帮助下?melt.data.frame:
数据
数据框架融化id.vars
id变量的向量.可以是整数(变量位置)或字符串(变量名称)如果为空,将使用所有非测量变量
因此,您的id.vars参数应该是名称的字符向量,例如"a"或数字向量,例如1.此向量的长度应等于您想要作为id的列数.
相反,您使用的元素包含的元素远多于数据中的列数.