在R中合并和加入多个Excel文件

m0rkklqb  于 2023-03-05  发布在  其他
关注(0)|答案(1)|浏览(152)

我有3个Excel文件(.xlsx),我想合并到一个 Dataframe 中。每个文件针对一个诊所研究中心-列表示诊所活动周(这些周是标准化的)。但是,研究中心在不同的周开始运行,因此并非所有研究中心都有每周的数据。行是诊断-每个研究中心都有相同诊断的核心组,但一些研究中心有额外的诊断。
我希望获得一个 Dataframe ,以便分析所有研究中心每周的诊断总数。
研究中心1:

diagnosis     wk2   wk3   wk 4
condition1    1     4     10
condition2          10    4

研究中心2:

diagnosis     wk1   wk2   wk 3  wk4
condition1    6           4     7
condition2          8     9

研究中心3:

diagnosis       wk1   wk2   wk 3  wk4
condition1      6           4     7
condition2      8     9
condition3      3     11    11    12

所需 Dataframe :

diagnosis       wk1   wk2   wk 3  wk4
condition1      12    1     12    24
condition2      8     17    19    4
condition3      3     11    11    12

我尝试了merge、lapply、rbind、join等的各种组合,但没有任何组合能给我想要的结果。
我得到的最接近的代码是:

files <- list.files(path ="data", pattern = "*.xlsx", full.names= T) %>%
  lapply(read_xlsx, sheet =1) %>%
  bind_rows()

这是因为它合并了所有列,但即使诊断相同,也会重复每个研究中心的行。

lmyy7pcs

lmyy7pcs1#

如果我们需要wk1到wk4中每个条件的所有值的sum,我们可能需要使用summarise

library(dplyr)

files <- list.files(path ="data", pattern = "*.xlsx", full.names= T) %>%
  lapply(read_xlsx, sheet =1) %>%
  bind_rows() %>%
  group_by(diagnosis) %>%
  summarise(across(wk1:wk4, ~sum(na.rm = TRUE))) %>%
  ungroup()

相关问题