如何进行并行 cbind
How to do a parallel cbind
我在向量中有三个小标题 a、b、c first=c(a,b,c)
。我在另一个向量 second=c(d,e,f)
中还有另外三个小标题。我如何进行并行 cbind?所以 a 应该与 d 结合,b 与 e 结合,c 与 f 结合。我从
开始
lapply(first,function(item){})
但我不知道如何以 "parallel" 的方式考虑第二个列表。
示例-
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
我们可以创建 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)
如果我们有对象的字符向量,使用 mget
到 return list
中对象的值,然后使用 map2
循环遍历相应的 list
元素并用 bind_cols
绑定列
library(purrr)
library(dplyr)
map2(mget(first), mget(second), bind_cols)
我在向量中有三个小标题 a、b、c first=c(a,b,c)
。我在另一个向量 second=c(d,e,f)
中还有另外三个小标题。我如何进行并行 cbind?所以 a 应该与 d 结合,b 与 e 结合,c 与 f 结合。我从
lapply(first,function(item){})
但我不知道如何以 "parallel" 的方式考虑第二个列表。
示例-
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
我们可以创建 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)
如果我们有对象的字符向量,使用 mget
到 return list
中对象的值,然后使用 map2
循环遍历相应的 list
元素并用 bind_cols
library(purrr)
library(dplyr)
map2(mget(first), mget(second), bind_cols)