在按名称分组的数据帧集上运行 R 循环

Run a R loop on sets of dataframes grouped by name

提问人:user22894192 提问时间:11/10/2023 最后编辑:Adrian Moleuser22894192 更新时间:11/21/2023 访问量:52

问:

我在一个文件夹中有一个CSV文件列表,名称如下:

A_B_1_R1
A_B_1_R2
A_B_1_R3
A_B_2_R1
A_B_2_R2
A_B_2_R3
A_B_3_R1
A_B_3_R2
A_B_3_R3

我编写了一个脚本来遍历这些 csvs,以计算平均值(以及其他一些 df 操作)。

如何按文件名对这些 csv 进行分组(组中的所有 A_B_1,组中的所有 A_B_2),然后分别对每个组运行循环?这将为我提供A_B_1输出,为A_B_2提供另一个输出,等等。

目前,我只是一遍又一遍地重复循环,每次我更改 list.files(pattern = “xxx”)

例如:

folder <- "path/to/input/csvs"
  data1 <- list.files(path = folder, pattern = "A_B_1")
  
  file1 <- data1[grep(paste0("A_B_1"), data1)]
  file1 <- paste0(folder, file1)
  df1 <- read.csv(file1, header = TRUE, sep = ",", na.strings = "")
  
  for (i in 1:length(data1)) {
    etc...
  }
  
  write.csv(....)





folder <- "path/to/input/csvs"
  data2 <- list.files(path = folder, pattern = "A_B_2")
  
  file2 <- data[grep(paste0("A_B_2"), data2)]
  file2 <- paste0(folder, file2)
  df2 <- read.csv(file2, header = TRUE, sep = ",", na.strings = "")
  
  for (i in 1:length(data2)) {
    etc...
  }
  
  write.csv(....)

有没有办法在不多次复制和粘贴循环的情况下运行它?

r csv

评论


答: 暂无答案