2017-07-01 31 views
1

我保存在一个数据帧随机抽样任意数量的所有列:grid.arrange数据帧

sigmas = 1:5 
xs = sapply(sigmas, function (v) rrayleigh(size, v)) 
mat = matrix(xs, ncol = length(sigmas), dimnames = list(NULL, sigmas)) 
df = data.frame(mat) 

现在我要救一个直方图每列,然后再使用grid.arrange()绘制它。主叫

ps = sapply(df, function (v) qplot(x = v)) 
p = qplot(df$X1) 

p后产生的直方图,而ps$X1输出NULL。我究竟做错了什么?谢谢。

+0

另一种方法是将数据重塑为长时间(融化),然后使用factets。 – user20650

回答

1

(我推荐使用的,而不是lapplysapply

您可以更改:

ps = sapply(df, function (v) qplot(x = v)) 

到:

library(iterators) 
ps = lapply(iter(df,by="col"), function(v) qplot(v)) 

或:

ps = lapply(1:ncol(df), function(v) qplot(df[,v])) 

呦你的问题是你一次提供了整个数据帧。

+0

工作。谢谢。 – Gerry