代码之家  ›  专栏  ›  技术社区  ›  Gerry

网格排列数据框的所有列

  •  1
  • Gerry  · 技术社区  · 7 年前

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

    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 回复  |  直到 7 年前
        1
  •  1
  •   CPak    7 年前

    (我建议使用 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]))
    

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