grid.arrange 数据框的所有列
grid.arrange all columns of a data frame
我在数据框中保存了任意数量的随机样本:
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
。我究竟做错了什么?谢谢。
(我建议使用 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]))
您的问题是您一次提供了整个数据框。
我在数据框中保存了任意数量的随机样本:
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
。我究竟做错了什么?谢谢。
(我建议使用 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]))
您的问题是您一次提供了整个数据框。