我有一个data.frame(追加)~~ 537行,我想从中绘制一些直方图。我想将数据框细分为50或100的块,并使用facet_wrap
中的ggplot2
并排绘制直方图。绘图没有问题,但我不确定在R中处理这个简单任务的最佳方法是什么。我知道我可以在data.frame中添加一个额外的列,例如data $ ID = 1,它将为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")
答案 0 :(得分: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