我在向量first=c(a,b,c)中有三个a,b,c。在另一个向量second=c(d,e,f)中,我还有另外三个碎片。我如何做一个并行的cbind?所以,a应该用d,b,e,c,f来表示。
lapply(first,function(item){}) 但我不知道如何以“平行”的方式考虑第二份清单。
例子-
a1<-data.frame(a=c(1,2),b=c(4,5))
a2<-data.frame(a=c(5,6),b=c(7,8))
a3<-data.frame(e=c(34,26),f=c(41,65))
a4<-data.frame(e=c(13,25),f=c(14,57))我想将a1绑定到a3,将a2绑定到a4以生成
a b e f
1 1 4 34 41
2 2 5 26 65和
a b e f
1 5 7 13 14
2 6 8 25 57发布于 2020-02-27 05:20:52
我们可以创建a1、a2和a3、a4的列表,并使用Map对它们进行cbind。
Map(cbind, list(a1, a2), list(a3 ,a4))
#[[1]]
# a b e f
#1 1 4 34 41
#2 2 5 26 65
#[[2]]
# a b e f
#1 5 7 13 14
#2 6 8 25 57相当于purrr的是:
purrr::map2(list(a1, a2), list(a3 ,a4), cbind)发布于 2020-02-27 21:22:38
如果有对象的字符向量,则使用mget返回list中对象的值,然后使用map2循环相应的list元素,并将列与bind_cols绑定。
library(purrr)
library(dplyr)
map2(mget(first), mget(second), bind_cols)https://stackoverflow.com/questions/60426370
复制相似问题