在 R 中转换数据框中的多个工作表
Transform multiple sheets in dataframes in R
愚蠢的问题 - 如何改进此代码?
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")
谢谢!!
我们可以遍历 sheet
数字并将其读入 list
和 reduce
并加入它们
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")
不如上面的答案干净,但您也可以合并或加入所有数据名,具体取决于列是否相同:
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()
函数。如果你有大量的床单,这可能会很烦人。
愚蠢的问题 - 如何改进此代码?
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")
谢谢!!
我们可以遍历 sheet
数字并将其读入 list
和 reduce
并加入它们
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")
不如上面的答案干净,但您也可以合并或加入所有数据名,具体取决于列是否相同:
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()
函数。如果你有大量的床单,这可能会很烦人。