将函数应用于 R 中的可变大小列表

Apply function to variable size list in R

我有一个按天分组的文件列表(下面的示例列表),我想将每个文件读入数据框并将它们绑定在一起。我目前正在寻找一种方法来避免“手动”my_files 引用,因为 my_files 列表有时可能超过两天,这会中断。有什么想法吗?

my_files <- list(c("file1_day0.txt", "file2_day0.txt"), c("file3_day3.txt", "file4_day3.txt"))

df <- rbind(lapply(my_files[[1]], create_activation_df) %>%
                purrr::reduce(dplyr::left_join, by = c("date",
                                                       "experiment")),
              lapply(my_files[[2]], create_activation_df) %>%
                purrr::reduce(dplyr::left_join, by = c("date",
                                                       "experiment")))

再一层lapply就是你所需要的。这显然是未经测试的,没有共享可重现的示例,但它应该能说明问题:

df <- bind_rows(
  lapply(my_files, \(x) {
    lapply(x, create_activation_df) %>%
      purrr::reduce(dplyr::left_join, by = c("date", "experiment"))
  }
)