grid.arrange数据框的所有列

时间:2017-07-01 10:49:46

标签: r dataframe ggplot2 gridextra

我在数据帧中保存了任意数量的随机样本:

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。我究竟做错了什么?谢谢。

1 个答案:

答案 0 :(得分:1)

(我建议使用lapply代替sapply

您可以更改:

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]))

您的问题是您一次提供了整个数据框。