我有一组调查数据,我想生成按受访者所在国家/地区分组的特定变量的图。到目前为止,我编写的生成绘图的代码是:
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
,您需要显式打印,因为正文中的命令结果不会被回显。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)