首页 > 解决方案 > 如何在R中操作excel文件的文件夹?

问题描述

所以我有一个格式相同的excel文件文件夹。这是我正在使用的简化版本:

country   count  year
USA       23232  2019
USA        3993  2019
RUSSIA    67574  2019
JAPAN        31  2019
JAPAN       535  2019

所以我想对我文件夹中的每个文件执行以下操作

df %>% 
  group_by(country, year) %>% 
  summarize(count = sum(count))

在一个文件中,这将如下所示:

  country     year count
1 JAPAN       2019   566
2 RUSSIA      2019 67574
3 USA         2019 27225

那么我怎样才能对我文件夹中的每个文件执行此操作,它们又是相同的。最终目标将是一个包含所有文件计数数据的数据帧。首选 Tidyverse

标签: rloopsdplyr

解决方案


folder_path <- "insert_path_here"
files <- list.files(path=folder_path)

results <- lapply(files, function(x) {
    df <- read.csv(paste0(folder_path, "/", x))
    df <- df %>% 
         group_by(country, year) %>% 
         summarize(count = sum(count))
    }
)
df_results <- do.call(bind_rows, results)    

或者,您可以手动将文件定义到列表中,但其要点是该脚本将:

  • 遍历该列表中的每个文件,并为每个文件:
  • 读入电子表格
  • 执行数据操作
  • 将所有结果绑定到数据框中

推荐阅读