# Set the path to the directory containing the xlsx files
data_folder <- "path/to/data_folder"
# List all the xlsx files in the data_folder
files <- list.files(path = data_folder, pattern = "\\.xlsx$", full.names = TRUE)
# Create a function to read the xlsx files and return column names
get_column_names <- function(file_path) {
read_xlsx(file_path) %>% names()
}
# Get column names from all the files
column_names <- map(files, get_column_names)
# Find the common columns in all the files
common_columns <- reduce(column_names, intersect)
# Read and bind data from all the files, keeping only the common columns
combined_data <- map_df(files, ~ read_xlsx(.x) %>% select(all_of(common_columns)))
4条答案
按热度按时间camsedfj1#
使用
intersect
检索公共列。字符串
正如注解中所指出的,您可以将最后一行替换为
型
对于性能和打字的小改进。
型
也可以,但我觉得有点不太清楚。
你也可以在最后一步使用dplyr的等价物。
型
elcex8rz2#
这是我的解决方案,希望我把你的问题回答对了
字符串
yc0p9oo03#
为我的个人软件包创建了自己的函数:(这也适用于2个以上的 Dataframe )
功能:
字符串
调用+示例数据:
型
rjee0c154#
下面是一个有用的方法,可以在大规模的xlsx文件中实现这一点
字符串