【问题标题】:Transform multiple sheets in dataframes in R在 R 中的数据框中转换多个工作表
【发布时间】:2021-09-06 06:17:57
【问题描述】:

愚蠢的问题 - 如何改进这段代码??

my_data1 <- read_excel("C:/Users/farj0/Downloads/Pilares_ranking_clp.xlsx", sheet = 1)

my_data2 <- read_excel("C:/Users/farj0/Downloads/Pilares_ranking_clp.xlsx", sheet = 2)

my_data3 <- read_excel("C:/Users/farj0/Downloads/Pilares_ranking_clp.xlsx", sheet = 3)

my_data4 <- read_excel("C:/Users/farj0/Downloads/Pilares_ranking_clp.xlsx", sheet = 4)

k = list(my_data1,my_data2,my_data3,my_data4) %>% reduce(left_join, by = "Município")

谢谢!!

【问题讨论】:

    标签: r dataframe lapply


    【解决方案1】:

    不如上面的答案干净,但您也可以合并或加入所有数据名,具体取决于列是否相同:

    df <- merge(read_excel("C:/Users/farj0/Downloads/Pilares_ranking_clp.xlsx", sheet = 1) %>% 
      read_excel("C:/Users/farj0/Downloads/Pilares_ranking_clp.xlsx", sheet = 2) %>% 
      read_excel("C:/Users/farj0/Downloads/Pilares_ranking_clp.xlsx", sheet = 3) %>% 
      read_excel("C:/Users/farj0/Downloads/Pilares_ranking_clp.xlsx", sheet = 4))
    

    您可以根据自己的目标更改任何联接的merge()

    您应该使用要合并的任何列填写(...),或者像我上面那样完全删除by()。我在by() 中放置了虚拟列。

    df <- merge(read_excel("C:/Users/farj0/Downloads/Pilares_ranking_clp.xlsx", sheet = 1) %>% 
      read_excel("C:/Users/farj0/Downloads/Pilares_ranking_clp.xlsx", sheet = 2) %>% 
      read_excel("C:/Users/farj0/Downloads/Pilares_ranking_clp.xlsx", sheet = 3) %>% 
      read_excel("C:/Users/farj0/Downloads/Pilares_ranking_clp.xlsx", sheet = 4), 
      by = c("Col1", "Col2"))
    

    同样的by() 语句也适用于join() 函数。如果您有大量床单,这可能会很烦人。

    【讨论】:

      【解决方案2】:

      我们可以遍历 sheet 数字并将其读入 listreduce 并加入它们

      library(purrr)
      library(readxl)
      library(dplyr)
      k <- map(1:4, 
       ~ read_excel("C:/Users/farj0/Downloads/Pilares_ranking_clp.xlsx", 
                    sheet = .x)) %>%
               reduce(left_join, by  = "Município")
      

      【讨论】:

      • 谢谢,好多了!
      猜你喜欢
      • 2020-06-19
      • 1970-01-01
      • 1970-01-01
      • 2017-05-04
      • 1970-01-01
      • 1970-01-01
      • 2021-12-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多