循环中的条形图

时间:2019-06-02 10:55:59

标签: r

我有这样的数据:

groups = c(1,1,2,2,3,3)

var1 = c(2,3,4,4,6,8)

dat = data.frame(groups, var1)

对于groups中的每个值,我想绘制var1的直方图。因此,我期望3个直方图包含var1的2个条目。

我尝试了一个循环:

for (i in unique(dat$groups)) {
  hist(dat$var1)
}

但是,它绘制了var1的所有条目,而不只是与每个组一起出现的值。

2 个答案:

答案 0 :(得分:1)

如果采用循环方法,则需要手动对数据进行子集

hist(subset(dat, groups == i)$var1)

否则,您可以将ggplot2用于具有更好功能和更好外观的目的。我可以简单地给您代码,但是如果您不熟悉R,我建议您花些时间了解ggplot的基础知识。否则代码看起来就像魔术一样

答案 1 :(得分:1)

一种可能的解决方案是通过splitgroups函数lapplyhist数据传输到每个子数据帧。

subdf_list <- split(dat, dat$groups)
h_list <- lapply(subdf_list, function(DF) {
  x11()
  hist(DF[['var1']])
})