r - 让foreach()和ggplot2相处融洽

标签 r foreach ggplot2

我有一组调查数据,我想生成一个特定变量的图,按受访者所在的国家分组。到目前为止,我编写的用于生成绘图的代码是:

countries <- isplit(drones, drones$v3)
foreach(country = countries) %dopar% {
  png(file = paste(output.exp, "/Histogram of Job Satisfaction in ", country$key[[1]], ".png", sep = ""))
  country.df <- data.frame(country)  #ggplot2 doesn't appreciate the lists nextElem() produces
  ggplot(country.df, aes(x = value.v51)) + geom_histogram()
  dev.off()
}

真正奇怪的事情?我可以运行isplit(),设置country <- nextElem(countries),然后在不发送foreach行的情况下运行代码-并获得漂亮的图。如果发送foreach,则会得到一些空白的.png文件。

在此先感谢您的帮助。

我绝对可以使用标准的R循环来做到这一点,但是我真的很想更好地了解foreach

最佳答案

如果要显示该图,则需要使用print:

print(ggplot(country.df, aes(x = value.v51)) + geom_histogram())

缺省情况下,ggplot命令返回一个图对象,但是该命令本身实际上并不显示该图。这是通过print命令完成的。请注意,以交互方式运行代码时,将打印命令结果,这就是为什么您通常不需要显式打印的原因。但是,当包装在foreach中时,由于主体中的命令结果将不会被回显,因此您需要显式打印。

关于r - 让foreach()和ggplot2相处融洽,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1352863/

相关文章:

旋转辅助轴标签的文本

RStudio blogdown 在首页生成空的 "Posts"链接

r - 使用 openxlsx 按单元格填充颜色过滤 Excel 中突出显示的数据

php - 如何通过foreach循环进行更新

r - mtcars ggplot 不知道如何处理数字类

r - 将 `sample sizes` 添加到 ggplot violinplot 图例时出现问题

r - 自动创建 Rmarkdown/Xaringan 演示幻灯片

r - 尝试在 Linux 服务器上运行多个实例时 H2o 崩溃

windows - 如何获取 Windows 中的每个磁盘并过滤 DeviceType,然后在其旁边添加磁盘的大小,以逗号分隔?

c# - 在 foreach 循环中更改对象值?