将来自不同数据框的相同列组合成新的数据框

combine same column from various data frames into new dataframe

我有几个这样的数据框:

df1
Time Terrain 
1     Land
2     Land 
3     Land  
4     Land 

我想从每个数据帧中取出列 "Terrain" 并将它们全部放入一个新数据帧中,为新数据帧的列指定从中提取的数据帧的名称。应如下所示:

combined_terrain

df1  df2  df3
Land Land Sea
Land Sea  Air
Land Sea  Land
Land Sea  Land

我知道我必须使用 cbind,但我有多个数据框,不想逐一输入。我是否通过列出不同的数据帧来循环它?

将所有数据集(假设它以 'df' 开头,后跟数字)放在 list ('lst') 中。然后使用lapply提取'Terrain'和cbind

setNames(do.call(cbind, lapply(lst, `[`, 'Terrain')), nm1)

数据

nm1 <- ls(pattern="df\d+")
lst <- mget(nm1)