0

我有一个 data.frame(附加),其中有 ~537 行,我想从中绘制一些直方图。facet_wrap我想将数据框细分为 50 或 100 个块,并使用in并排绘制直方图ggplot2。绘图没问题,但我不确定在 R 中处理这个简单任务的最佳方法是什么。我知道我可以在 data.frame 中添加一个额外的列,例如 data$ID = 1 ,这将为所有行。是否有一些方便的功能,我可以设置data[1:50,]$ID= 1, data[51:100,]$ID= 2 等但以更优雅的方式

structure(list(stress_score_delta = c(1L, 1L, 0L, -3L, 0L, 0L, 
    0L, -2L, 0L, -5L, -3L, -3L, -4L, 0L, -1L, 0L, 0L, -3L, -4L, 1L, 
    -3L, -4L, -5L, -1L, -2L, -3L, -1L, -2L, -3L, -10L, -5L, 1L, -2L, 
    -1L, -2L, -2L, 0L, -3L, -3L, 0L, -1L, -1L, 2L, -2L, -3L, -1L, 
    0L, 0L, -2L, -13L, 1L, -1L, -1L, -3L, -1L, 4L, 2L, 0L, -2L, 0L, 
    -4L, 2L, -1L, -2L, -3L, -2L, -4L, 1L, 0L, 2L, 2L, 0L, 2L, 2L, 
    0L, 1L, 3L, -2L, 3L, 2L, 0L, 1L, -2L, 2L, -2L, -2L, 0L, 0L, 1L, 
    -1L, -2L, -1L, 2L, 0L, -2L, 0L, -4L, -6L, -1L, -1L, -2L, -1L, 
    -3L, -1L, -2L, 0L, -1L, 0L, -1L, -4L, -4L, 0L, -5L, -3L, -4L, 
    -1L, -1L, 2L, 1L, -9L, -5L, NA, -5L, -4L, -6L, -2L, -7L, -3L, 
    -2L, -5L, -1L, -4L, -3L, 1L, -6L, -8L, -3L, 0L, 3L, -1L, -3L, 
    -3L, -3L, -4L, -5L, -4L, -2L, 1L, -3L, -1L, 0L, -6L, -1L, -11L, 
    -11L, -7L, 2L, 0L, -2L, 0L, -2L, 5L, -4L, 0L, -1L, 2L, 0L, -1L, 
    -2L, -7L, -2L, -2L, 0L, 4L, -5L, 0L, -5L, -3L, -2L, -2L, -2L, 
    -6L, -1L, 0L, -1L, -2L, -1L, -2L, -2L, -1L, -5L, 1L, 2L, -1L, 
    2L, -1L, 3L, -1L, -2L, -2L, 0L, 0L, -3L, -2L, -1L, -1L, -2L, 
    0L, -3L, -1L, -5L, -1L, -2L, -1L, -5L, -2L, 0L, 0L, -1L, -1L, 
    -1L, 2L, -1L, -4L, -2L, -4L, -2L, -1L, -7L, -3L, 0L, -1L, -3L, 
    -1L, -2L, -1L, -1L, 0L, -5L, -1L, -4L, -12L, -3L, -2L, 0L, -2L, 
    -4L, 0L, -4L, -2L, -2L, -1L, 0L, -5L, 0L, -3L, -3L, 0L, -1L, 
    0L, 2L, 1L, -6L, 1L, -2L, -1L, -3L, -4L, -2L, -3L, -1L, -1L, 
    0L, -4L, -2L, 0L, -1L, -6L, -1L, -2L, -1L, -4L, 2L, -1L, -2L, 
    -1L, -4L, -2L, -2L, -3L, -4L, -2L, -4L, -3L, -2L, -3L, 0L, -4L, 
    0L, -10L, -3L, -5L, -2L, -2L, -2L, -6L, -2L, -4L, 2L, 3L, 0L, 
    0L, 4L, -1L, -1L, -3L, -1L, 2L, -1L, -3L, -3L, -3L, -5L, -7L, 
    -5L, -4L, -2L, -3L, 4L, -2L, 1L, 0L, -1L, -1L, -2L, 1L, -10L, 
    0L, -5L, -2L, 0L, -3L, -5L, 4L, -1L, 1L, 0L, -1L, 1L, -2L, 3L, 
    -1L, -1L, -3L, -5L, -2L, -3L, 2L, -4L, -1L, -1L, 0L, 0L, -3L, 
    0L, -2L, -2L, -6L, -5L, 0L, 1L, -1L, 0L, 0L, -1L, 2L, -1L, -1L, 
    0L, -2L, -2L, -5L, -1L, 0L, -1L, -4L, -4L, -3L, -7L, -3L, -1L, 
    -1L, -2L, -2L, 0L, 1L, 2L, -1L, -2L, NA, NA, 0L, 1L, NA, 1L, 
    -1L, 1L, -3L, -1L, 1L, -4L, -2L, 2L, -5L, -1L, -1L, 0L, -2L, 
    -2L, 2L, -2L, -1L, -1L, -1L, 1L, -3L, 0L, -1L, -1L, -2L, 1L, 
    -2L, -1L, -1L, -2L, -1L, -1L, -3L, -11L, -2L, -1L, -1L, -3L, 
    0L, -1L, 0L, 1L, 4L, 0L, -1L, -1L, -4L, -1L, -3L, -2L, -1L, -2L, 
    0L, -4L, 0L, -5L, -1L, -2L, -3L, -1L, -5L, 0L, 0L, 0L, -1L, -2L, 
    0L, 0L, 1L, 2L, -2L, 1L, 0L, 1L, 0L, 1L, 0L, -2L, -5L, -3L, -1L, 
    -1L, -1L, -2L, 0L, -1L, -2L, 0L, -1L, 1L, -5L, -3L, -3L, 0L, 
    -7L, -1L, 2L, 1L, -1L, -3L, -3L, 0L, 0L, -1L, -4L, -1L, 0L, -1L, 
    -4L, 0L, -10L, 0L, 0L, 1L, -3L, -1L, -2L, -8L, -2L, 0L, -3L, 
    -1L, 0L, 0L, -2L, -5L, -4L, -1L, -2L, -2L, -1L, -1L), isch_score_delta = c(0L, 
    0L, 0L, -1L, 0L, 0L, 1L, 1L, 3L, 0L, 1L, 1L, 0L, 0L, 2L, 0L, 
    1L, -2L, 1L, -1L, -1L, 2L, 0L, 0L, 0L, 0L, -1L, -2L, -2L, -2L, 
    -4L, 0L, -2L, -2L, -1L, 3L, 0L, -2L, -1L, -1L, 2L, 0L, 1L, -3L, 
    0L, 0L, 3L, -1L, -2L, 0L, 0L, -1L, 0L, -4L, 1L, -3L, 2L, 2L, 
    0L, 0L, -3L, 1L, 0L, 0L, -1L, -2L, -5L, 0L, -1L, 0L, -1L, 0L, 
    3L, 2L, -1L, 0L, 1L, 1L, 3L, 3L, -1L, -1L, 0L, 3L, 8L, 0L, 1L, 
    2L, 4L, 0L, -2L, 1L, 0L, 2L, -1L, 0L, 2L, -2L, 0L, -1L, 2L, 0L, 
    -2L, -2L, 3L, 0L, 3L, 2L, -2L, -2L, -2L, 3L, 2L, 0L, 0L, -1L, 
    1L, 4L, 1L, -4L, -2L, NA, -1L, -3L, -2L, -2L, -3L, 0L, 1L, -3L, 
    0L, -4L, 0L, 1L, -2L, 0L, -1L, 1L, 0L, 3L, -3L, -2L, -2L, -1L, 
    -1L, -4L, -1L, 1L, -2L, -2L, 1L, -1L, -1L, -4L, -5L, -9L, -2L, 
    3L, -2L, 1L, 0L, 7L, 0L, 1L, 0L, 3L, 2L, 1L, -3L, 0L, -1L, -2L, 
    2L, 6L, 1L, 1L, -1L, -1L, -1L, 0L, 0L, -3L, -2L, 1L, 0L, 0L, 
    1L, 0L, -1L, 0L, -4L, 0L, 0L, 0L, 1L, -1L, -3L, 1L, -5L, 0L, 
    0L, 0L, -1L, 2L, 0L, 0L, 0L, 2L, 0L, 3L, 0L, 0L, -1L, 0L, -1L, 
    0L, 0L, 1L, 0L, 0L, -1L, 2L, 0L, 0L, 1L, -1L, 0L, 2L, -3L, -1L, 
    1L, 0L, -1L, 0L, 0L, -1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, -1L, 0L, 
    -2L, 2L, 2L, 0L, -2L, 1L, 1L, -1L, -2L, 0L, -1L, -3L, 0L, 1L, 
    -1L, 2L, -1L, -7L, 0L, 1L, 1L, -1L, 0L, 0L, 1L, 0L, 1L, -1L, 
    -2L, 0L, 0L, 2L, 0L, 1L, -6L, -1L, 0L, 5L, 0L, -5L, 0L, 2L, 0L, 
    -1L, 3L, -2L, -1L, -4L, -2L, -2L, -1L, 1L, -1L, 2L, -3L, -4L, 
    -2L, -2L, -2L, -2L, -6L, 0L, 1L, 0L, 0L, 0L, 2L, 5L, 2L, 0L, 
    0L, 1L, 5L, 0L, -2L, 3L, -1L, -1L, 0L, 0L, 0L, -1L, 0L, 2L, 2L, 
    2L, 1L, -1L, 0L, -1L, 2L, -6L, 0L, -1L, -3L, -1L, 0L, -3L, 2L, 
    0L, 0L, 0L, 0L, -4L, 0L, 2L, -1L, 2L, -2L, -2L, 1L, -1L, 2L, 
    -2L, 0L, -2L, 2L, 2L, 1L, 0L, 1L, -2L, -1L, 1L, 2L, 0L, 0L, 0L, 
    4L, -1L, 2L, 0L, -2L, 0L, 0L, -1L, -3L, 1L, -1L, 1L, 0L, 2L, 
    0L, 2L, -1L, 3L, 0L, 0L, -3L, -1L, 4L, 1L, -2L, 0L, NA, NA, 1L, 
    0L, NA, 2L, 2L, -1L, 1L, 2L, 0L, -5L, -3L, 1L, -1L, 0L, 0L, -1L, 
    0L, -2L, 2L, 1L, -1L, -1L, -1L, -1L, -2L, 0L, 1L, 0L, 0L, 1L, 
    0L, 0L, 0L, 0L, -1L, -1L, -1L, 0L, -2L, 3L, 1L, 0L, 0L, -2L, 
    0L, 2L, 1L, 2L, -1L, -1L, -1L, 1L, -1L, -2L, -1L, 0L, 0L, -1L, 
    -1L, -2L, -1L, -1L, 1L, 0L, -2L, 0L, 0L, 1L, 0L, 0L, 2L, -1L, 
    1L, 2L, 1L, 0L, 1L, 2L, 0L, 1L, 1L, 0L, -1L, -1L, 1L, 2L, 0L, 
    0L, 1L, 0L, 0L, 1L, -1L, 1L, -2L, 0L, -1L, 0L, -4L, 1L, 3L, 1L, 
    -2L, -2L, 0L, 0L, 1L, -2L, -4L, -1L, 2L, -1L, -2L, 0L, 0L, 1L, 
    3L, 2L, -2L, 1L, 0L, -3L, -1L, 0L, 0L, -1L, 1L, 1L, -1L, -2L, 
    2L, 1L, 0L, -1L, 0L, -1L), num = 1:537), .Names = c("stress_score_delta", 
    "isch_score_delta", "num"), row.names = c(NA, -537L), class = "data.frame")
    > data <- data.frame(read.csv("~/Downloads/sas_reporting_hist.csv"))
    > dput(data)
    structure(list(stress_score_delta = c(1L, 1L, 0L, -3L, 0L, 0L, 
    0L, -2L, 0L, -5L, -3L, -3L, -4L, 0L, -1L, 0L, 0L, -3L, -4L, 1L, 
    -3L, -4L, -5L, -1L, -2L, -3L, -1L, -2L, -3L, -10L, -5L, 1L, -2L, 
    -1L, -2L, -2L, 0L, -3L, -3L, 0L, -1L, -1L, 2L, -2L, -3L, -1L, 
    0L, 0L, -2L, -13L, 1L, -1L, -1L, -3L, -1L, 4L, 2L, 0L, -2L, 0L, 
    -4L, 2L, -1L, -2L, -3L, -2L, -4L, 1L, 0L, 2L, 2L, 0L, 2L, 2L, 
    0L, 1L, 3L, -2L, 3L, 2L, 0L, 1L, -2L, 2L, -2L, -2L, 0L, 0L, 1L, 
    -1L, -2L, -1L, 2L, 0L, -2L, 0L, -4L, -6L, -1L, -1L, -2L, -1L, 
    -3L, -1L, -2L, 0L, -1L, 0L, -1L, -4L, -4L, 0L, -5L, -3L, -4L, 
    -1L, -1L, 2L, 1L, -9L, -5L, NA, -5L, -4L, -6L, -2L, -7L, -3L, 
    -2L, -5L, -1L, -4L, -3L, 1L, -6L, -8L, -3L, 0L, 3L, -1L, -3L, 
    -3L, -3L, -4L, -5L, -4L, -2L, 1L, -3L, -1L, 0L, -6L, -1L, -11L, 
    -11L, -7L, 2L, 0L, -2L, 0L, -2L, 5L, -4L, 0L, -1L, 2L, 0L, -1L, 
    -2L, -7L, -2L, -2L, 0L, 4L, -5L, 0L, -5L, -3L, -2L, -2L, -2L, 
    -6L, -1L, 0L, -1L, -2L, -1L, -2L, -2L, -1L, -5L, 1L, 2L, -1L, 
    2L, -1L, 3L, -1L, -2L, -2L, 0L, 0L, -3L, -2L, -1L, -1L, -2L, 
    0L, -3L, -1L, -5L, -1L, -2L, -1L, -5L, -2L, 0L, 0L, -1L, -1L, 
    -1L, 2L, -1L, -4L, -2L, -4L, -2L, -1L, -7L, -3L, 0L, -1L, -3L, 
    -1L, -2L, -1L, -1L, 0L, -5L, -1L, -4L, -12L, -3L, -2L, 0L, -2L, 
    -4L, 0L, -4L, -2L, -2L, -1L, 0L, -5L, 0L, -3L, -3L, 0L, -1L, 
    0L, 2L, 1L, -6L, 1L, -2L, -1L, -3L, -4L, -2L, -3L, -1L, -1L, 
    0L, -4L, -2L, 0L, -1L, -6L, -1L, -2L, -1L, -4L, 2L, -1L, -2L, 
    -1L, -4L, -2L, -2L, -3L, -4L, -2L, -4L, -3L, -2L, -3L, 0L, -4L, 
    0L, -10L, -3L, -5L, -2L, -2L, -2L, -6L, -2L, -4L, 2L, 3L, 0L, 
    0L, 4L, -1L, -1L, -3L, -1L, 2L, -1L, -3L, -3L, -3L, -5L, -7L, 
    -5L, -4L, -2L, -3L, 4L, -2L, 1L, 0L, -1L, -1L, -2L, 1L, -10L, 
    0L, -5L, -2L, 0L, -3L, -5L, 4L, -1L, 1L, 0L, -1L, 1L, -2L, 3L, 
    -1L, -1L, -3L, -5L, -2L, -3L, 2L, -4L, -1L, -1L, 0L, 0L, -3L, 
    0L, -2L, -2L, -6L, -5L, 0L, 1L, -1L, 0L, 0L, -1L, 2L, -1L, -1L, 
    0L, -2L, -2L, -5L, -1L, 0L, -1L, -4L, -4L, -3L, -7L, -3L, -1L, 
    -1L, -2L, -2L, 0L, 1L, 2L, -1L, -2L, NA, NA, 0L, 1L, NA, 1L, 
    -1L, 1L, -3L, -1L, 1L, -4L, -2L, 2L, -5L, -1L, -1L, 0L, -2L, 
    -2L, 2L, -2L, -1L, -1L, -1L, 1L, -3L, 0L, -1L, -1L, -2L, 1L, 
    -2L, -1L, -1L, -2L, -1L, -1L, -3L, -11L, -2L, -1L, -1L, -3L, 
    0L, -1L, 0L, 1L, 4L, 0L, -1L, -1L, -4L, -1L, -3L, -2L, -1L, -2L, 
    0L, -4L, 0L, -5L, -1L, -2L, -3L, -1L, -5L, 0L, 0L, 0L, -1L, -2L, 
    0L, 0L, 1L, 2L, -2L, 1L, 0L, 1L, 0L, 1L, 0L, -2L, -5L, -3L, -1L, 
    -1L, -1L, -2L, 0L, -1L, -2L, 0L, -1L, 1L, -5L, -3L, -3L, 0L, 
    -7L, -1L, 2L, 1L, -1L, -3L, -3L, 0L, 0L, -1L, -4L, -1L, 0L, -1L, 
    -4L, 0L, -10L, 0L, 0L, 1L, -3L, -1L, -2L, -8L, -2L, 0L, -3L, 
    -1L, 0L, 0L, -2L, -5L, -4L, -1L, -2L, -2L, -1L, -1L), isch_score_delta = c(0L, 
    0L, 0L, -1L, 0L, 0L, 1L, 1L, 3L, 0L, 1L, 1L, 0L, 0L, 2L, 0L, 
    1L, -2L, 1L, -1L, -1L, 2L, 0L, 0L, 0L, 0L, -1L, -2L, -2L, -2L, 
    -4L, 0L, -2L, -2L, -1L, 3L, 0L, -2L, -1L, -1L, 2L, 0L, 1L, -3L, 
    0L, 0L, 3L, -1L, -2L, 0L, 0L, -1L, 0L, -4L, 1L, -3L, 2L, 2L, 
    0L, 0L, -3L, 1L, 0L, 0L, -1L, -2L, -5L, 0L, -1L, 0L, -1L, 0L, 
    3L, 2L, -1L, 0L, 1L, 1L, 3L, 3L, -1L, -1L, 0L, 3L, 8L, 0L, 1L, 
    2L, 4L, 0L, -2L, 1L, 0L, 2L, -1L, 0L, 2L, -2L, 0L, -1L, 2L, 0L, 
    -2L, -2L, 3L, 0L, 3L, 2L, -2L, -2L, -2L, 3L, 2L, 0L, 0L, -1L, 
    1L, 4L, 1L, -4L, -2L, NA, -1L, -3L, -2L, -2L, -3L, 0L, 1L, -3L, 
    0L, -4L, 0L, 1L, -2L, 0L, -1L, 1L, 0L, 3L, -3L, -2L, -2L, -1L, 
    -1L, -4L, -1L, 1L, -2L, -2L, 1L, -1L, -1L, -4L, -5L, -9L, -2L, 
    3L, -2L, 1L, 0L, 7L, 0L, 1L, 0L, 3L, 2L, 1L, -3L, 0L, -1L, -2L, 
    2L, 6L, 1L, 1L, -1L, -1L, -1L, 0L, 0L, -3L, -2L, 1L, 0L, 0L, 
    1L, 0L, -1L, 0L, -4L, 0L, 0L, 0L, 1L, -1L, -3L, 1L, -5L, 0L, 
    0L, 0L, -1L, 2L, 0L, 0L, 0L, 2L, 0L, 3L, 0L, 0L, -1L, 0L, -1L, 
    0L, 0L, 1L, 0L, 0L, -1L, 2L, 0L, 0L, 1L, -1L, 0L, 2L, -3L, -1L, 
    1L, 0L, -1L, 0L, 0L, -1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, -1L, 0L, 
    -2L, 2L, 2L, 0L, -2L, 1L, 1L, -1L, -2L, 0L, -1L, -3L, 0L, 1L, 
    -1L, 2L, -1L, -7L, 0L, 1L, 1L, -1L, 0L, 0L, 1L, 0L, 1L, -1L, 
    -2L, 0L, 0L, 2L, 0L, 1L, -6L, -1L, 0L, 5L, 0L, -5L, 0L, 2L, 0L, 
    -1L, 3L, -2L, -1L, -4L, -2L, -2L, -1L, 1L, -1L, 2L, -3L, -4L, 
    -2L, -2L, -2L, -2L, -6L, 0L, 1L, 0L, 0L, 0L, 2L, 5L, 2L, 0L, 
    0L, 1L, 5L, 0L, -2L, 3L, -1L, -1L, 0L, 0L, 0L, -1L, 0L, 2L, 2L, 
    2L, 1L, -1L, 0L, -1L, 2L, -6L, 0L, -1L, -3L, -1L, 0L, -3L, 2L, 
    0L, 0L, 0L, 0L, -4L, 0L, 2L, -1L, 2L, -2L, -2L, 1L, -1L, 2L, 
    -2L, 0L, -2L, 2L, 2L, 1L, 0L, 1L, -2L, -1L, 1L, 2L, 0L, 0L, 0L, 
    4L, -1L, 2L, 0L, -2L, 0L, 0L, -1L, -3L, 1L, -1L, 1L, 0L, 2L, 
    0L, 2L, -1L, 3L, 0L, 0L, -3L, -1L, 4L, 1L, -2L, 0L, NA, NA, 1L, 
    0L, NA, 2L, 2L, -1L, 1L, 2L, 0L, -5L, -3L, 1L, -1L, 0L, 0L, -1L, 
    0L, -2L, 2L, 1L, -1L, -1L, -1L, -1L, -2L, 0L, 1L, 0L, 0L, 1L, 
    0L, 0L, 0L, 0L, -1L, -1L, -1L, 0L, -2L, 3L, 1L, 0L, 0L, -2L, 
    0L, 2L, 1L, 2L, -1L, -1L, -1L, 1L, -1L, -2L, -1L, 0L, 0L, -1L, 
    -1L, -2L, -1L, -1L, 1L, 0L, -2L, 0L, 0L, 1L, 0L, 0L, 2L, -1L, 
    1L, 2L, 1L, 0L, 1L, 2L, 0L, 1L, 1L, 0L, -1L, -1L, 1L, 2L, 0L, 
    0L, 1L, 0L, 0L, 1L, -1L, 1L, -2L, 0L, -1L, 0L, -4L, 1L, 3L, 1L, 
    -2L, -2L, 0L, 0L, 1L, -2L, -4L, -1L, 2L, -1L, -2L, 0L, 0L, 1L, 
    3L, 2L, -2L, 1L, 0L, -3L, -1L, 0L, 0L, -1L, 1L, 1L, -1L, -2L, 
    2L, 1L, 0L, -1L, 0L, -1L)), .Names = c("stress_score_delta", 
    "isch_score_delta"), row.names = c(NA, -537L), class = "data.frame")
4

1 回答 1

1

您可以像这样创建一个 data.frame 列表:

split(dat,cumsum(seq(nrow(dat)) %% 51 == 0))  ## each data.frame has 50 rows

例如,使用您的数据,我创建了一个 data.frame 列表,每个列表有 5 行:

 head(split(dat,cumsum(seq(nrow(dat)) %% 6 == 0)))
$`0`
  stress_score_delta isch_score_delta num
1                  1                0   1
2                  1                0   2
3                  0                0   3
4                 -3               -1   4
5                  0                0   5

$`1`
   stress_score_delta isch_score_delta num
6                   0                0   6
7                   0                1   7
8                  -2                1   8
9                   0                3   9
10                 -5                0  10
11                 -3                1  11
于 2013-05-23T12:16:47.107 回答