多个 bind_rows 与 R Dplyr
Multiple bind_rows with R Dplyr
我需要 bind_row 27 excel 个文件。虽然我可以手动完成,但我想用循环来完成。循环的问题是它将第一个文件绑定到 i
,然后第一个文件绑定到 i+1
,因此丢失 i
。我该如何解决这个问题?
nm <- list.files(path="sample/sample/sample/")
df <- data.frame()
for(i in 1:27){
my_data <- bind_rows(df, read_excel(path = nm[i]))
}
我们可以用 map
遍历文件,用 read_excel
读取数据,用 _dfr
rbind
library(purrr)
my_data <- map_dfr(nm, read_excel)
在 Op 的代码中,问题是在每次迭代中,它都会创建一个临时数据集 'my_data',相反,它应该绑定到已经创建的原始 'df'
for(i in 1:27){
df <- rbind(df, read_excel(path = nm[i]))
}
我们可以使用 sapply
result <- sapply(files, read_excel, simplify=FALSE) %>%
bind_rows(.id = "id")
您仍然可以使用 for 循环:
my_data<-vector('list', 27)
for(i in 1:27){
my_data[i] <- read_excel(path = nm[i])
}
do.call(rbind, my_data)
我需要 bind_row 27 excel 个文件。虽然我可以手动完成,但我想用循环来完成。循环的问题是它将第一个文件绑定到 i
,然后第一个文件绑定到 i+1
,因此丢失 i
。我该如何解决这个问题?
nm <- list.files(path="sample/sample/sample/")
df <- data.frame()
for(i in 1:27){
my_data <- bind_rows(df, read_excel(path = nm[i]))
}
我们可以用 map
遍历文件,用 read_excel
读取数据,用 _dfr
library(purrr)
my_data <- map_dfr(nm, read_excel)
在 Op 的代码中,问题是在每次迭代中,它都会创建一个临时数据集 'my_data',相反,它应该绑定到已经创建的原始 'df'
for(i in 1:27){
df <- rbind(df, read_excel(path = nm[i]))
}
我们可以使用 sapply
result <- sapply(files, read_excel, simplify=FALSE) %>%
bind_rows(.id = "id")
您仍然可以使用 for 循环:
my_data<-vector('list', 27)
for(i in 1:27){
my_data[i] <- read_excel(path = nm[i])
}
do.call(rbind, my_data)