如何在循环中cbind()数据帧集以生成多个数据集

时间:2017-09-05 11:43:41

标签: r dataframe cbind

我已经说过4个数据集f1,f2,i1,i2。我想cbind() f1 i1f2 i2

我可以用

v1<-cbind(f1,i1)
v2<-cbind(f2,i2)

但我想在某种循环中这样做。

我知道这个问题非常基础。但经过大量的搜索,我仍然无法找到解决方案。

2 个答案:

答案 0 :(得分:2)

我们可以使用Mapcbind两个数据集的相应列

lst <- setNames(Map(cbind, mget(ls(pattern = "^f\\d+")),
        mget(ls(pattern = "^i\\d+"))), paste0("v", seq_along(f1)))

创建list个数据集。

数据

f1 <- data.frame(col1 = 1:5, col2 = 6:10)
f2 <- data.frame(col1 = 1:10, col2 = 11:20)
i1 <- data.frame(col3 = 11:15, col4 = 16:20)
i2 <- data.frame(col3 = 21:30, col4 = 31:40)

答案 1 :(得分:1)

这更简单:

Map(cbind,list(f1,f2),list(i1,i2))

此代码应该可以使用