首页 > 解决方案 > 循环遍历 R 中的多个数据帧

问题描述

我的磁盘上有一组 RDs 格式的每个季度/年的调查设计数据。数据是这样的:

Year  Quarter  Age
2010     1     27
2010     1     32 
2010     1     34
...

我正在使用该函数svymean(formula=~Age, na.rm = T, design = data20101)来估计每个年/季度文件的年龄变量的平均值。我想以一种可以循环运行该函数然后将结果保存在一个数据帧中的方式更有效地运行它。

我正在寻找的输出是产生这样一个数据框:

Year  Quarter  Mean_Age
2010     1       31.1
2010     1       32.4 
2010     1       30.9
2010     1       34.5
2010     2       36.3
2010     2       31.2
2010     2       30.8
2010     2       35.6
...

问候,

标签: r

解决方案


我没有足够的代表发表评论。我看到 r2evans 就如何读取大数据提出了很好的建议。如果要遍历数据,显然需要以某种方式列出数据。此方法遍历文件名列表,因为您的数据本身都在一个目录中。它也不会一次保存一个以上的数据集,如果您唯一想要的是输出/分组平均年龄(如果您在此之外运行更多分析,则不理想)。我不确定您的问题最紧迫的是什么,但下面是如何解决您的问题的一般模型。

library(dplyr)
output <- data.frame(Year = numeric(),
                     Quarter = numeric(),
                     Mean_Age = numeric())
filepath <- "./filpath_to_data/"
files_list <- list.files(filepath)
for (i in 1:length(files_list)){
  output <- read.csv(paste0(filepath, files_list[i])) %>%
    group_by(Year, Quarter) %>%
    summarise(Mean_Age = mean(Age), .groups = "drop") %>%
    add_rows(output)
}
output   

推荐阅读