遍历乡村浪并保存情节

时间:2019-09-18 09:51:59

标签: r foreach

我有一个随时间推移(波动)包含国家/地区的数据集,其结构如下:

country wave income
1       1     1000
1       2     1400
1       3     900
..     ..     .. 
1       8     40000
2       1     3000
2       2     5432

以此类推,适用于15个国家和8个国家/地区。我想运行foreach国家,并且foreach对家庭总净收入进行qqplot绘制,以便首先检测右尾部的Pareto分布,然后保存该图。我尝试使用以下

列出国家和地区
countries<-unique(final_echp$country) 
waves<-unique(final_echp$wave)

然后使用foreach包运行:

foreach(c=countries)
  foreach(w=waves) %do% { 
    qqnorm(final_echp$hi100_eur)
    qqline(final_echp$hi100_eur)
    } 

但是它崩溃了,从某种意义上说,运行了几分钟都没有任何结果,我必须打破它。我该如何循环并保存带有相应国家(地区)标题的地块?

谢谢

1 个答案:

答案 0 :(得分:0)

据我了解,您想为多个国家/地区绘制参数并保存图以供以后检查。为什么不将它们保存为PDF?让我告诉你如何做。我将使用ggplot2

library(ggplot2)
library(dplyr)

df <- data.frame(country = c(rep('USA',20), rep('Canada',20), rep('Mexico',20)),
                 wave = c(1:20, 1:20, 1:20),
                 par = c(1:20 + 5*runif(20), 21:40 + 10*runif(20), 1:20 + 15*runif(20)))

countries <- unique(df$country)

plot_list <- list()
i <- 1

for (c in countries){
  pl <- ggplot(data = df %>% filter(country == c)) +
    geom_point(aes(wave, par), size = 3, color = 'red') +
    labs(title = as.character(c), x = 'wave', y = 'value') +
    theme_bw(base_size = 16)

  plot_list[[i]] <- pl
  i <- i + 1
}

pdf('path/to/pdf')
pdf.options(width = 9, height = 7)
for (i in 1:length(plot_list)){
  print(plot_list[[i]])
}
dev.off()

生成的pdf可在path/to/pdf上找到。