使用 r 将名为 Natco 的新列添加到合并的 excel 文件中
add a new column named Natco to the merged excel file using r
我正在尝试使用以下代码将多个 excel 文件合并为一个:
df <- rbind(df1, df2, df3, df4, df5)
此代码 运行 正确,并为我提供了正确的输出。但是我需要在合并数据框的末尾添加新列(Natco),它可以添加这个文件所在的每个数据框的名称,比如;
col1 col2 col3 col4 col5 Natco
5200 2018 text short term df1
5300 2014 text short term df2
5400 2017 string short term df3
... ... ... ... ... ...
有人知道如何在 R 中做到这一点吗?
阿山
您可以将 "Natco" 列 cbind 到每个优先于 rbind 的 df。
实现看起来像这样:
df1 <- cbind(df1, "Natco"="df1")
df2 <- cbind(df2, "Natco"="df2")
然后是
df <- rbind(df1, ... , df2)
这应该有效:
library(readxl)
excel_files <- list.files("fullPathToFolderWhereExcelFilesSits", full.names = TRUE)
df <- lapply(excel_files, read_xlsx, sheet = 1L)
for(i in 1:length(excel_files)){
df[[i]]["Natco"] <- gsub(".*/", "", excel_files[i])
}
我正在尝试使用以下代码将多个 excel 文件合并为一个:
df <- rbind(df1, df2, df3, df4, df5)
此代码 运行 正确,并为我提供了正确的输出。但是我需要在合并数据框的末尾添加新列(Natco),它可以添加这个文件所在的每个数据框的名称,比如;
col1 col2 col3 col4 col5 Natco
5200 2018 text short term df1
5300 2014 text short term df2
5400 2017 string short term df3
... ... ... ... ... ...
有人知道如何在 R 中做到这一点吗?
阿山
您可以将 "Natco" 列 cbind 到每个优先于 rbind 的 df。
实现看起来像这样:
df1 <- cbind(df1, "Natco"="df1")
df2 <- cbind(df2, "Natco"="df2")
然后是
df <- rbind(df1, ... , df2)
这应该有效:
library(readxl)
excel_files <- list.files("fullPathToFolderWhereExcelFilesSits", full.names = TRUE)
df <- lapply(excel_files, read_xlsx, sheet = 1L)
for(i in 1:length(excel_files)){
df[[i]]["Natco"] <- gsub(".*/", "", excel_files[i])
}