这不是最优雅的解决方案,但它的工作原理。
df <- data.frame() # empty data.frame
base_names <- names(a) # base_names will reflect any data.frame that has 238 observations
list_df <- list(a, b, c) # list of all your data frames
for(item in list_df){ # create loop
items <- item[, base_names] # only select columns that match the 238 columns
df <- rbind(df, items) # append those to the data.frame
}
df # all data.frames rbinded
如果你想避免环路,也可以使用lapply
library(plyr)
library(dplyr)
df <- data.frame()
base_names <- names(a)
list_df <- list(a, b, c)
lapply(list_df,
function(x){
x_cols <- x[, base_names]
df <- rbind(df, x_cols)
}) %>% plyr::ldply(rbind)
看一看'rbind.fill'从'plyr'包,'rbindlist'从'数据.table'或'dplyr'的'bind_rows' – Jaap