R 将每个元素与对象的每个其他元素组合(叉积)

R 将每个元素与对象的每个其他元素组合(叉积),r,cross-product,R,Cross Product,我有两个整数向量,比如说v1=c(1,2)和v2=c(3,4),我想组合并得到结果(作为data.frame或矩阵): >combine(v1,v2)对于向量的简单情况,有expand.grid v1 <- 1:2 v2 <- 3:4 expand.grid(v1, v2) # Var1 Var2 #1 1 3 #2 2 3 #3 1 4 #4 2 4 同样,对于数据帧的情况,有merge。(我敢肯定,这一问题几天前才被问到。)如果

我有两个整数向量,比如说
v1=c(1,2)
v2=c(3,4)
,我想组合并得到结果(作为data.frame或矩阵):


>combine(v1,v2)对于向量的简单情况,有
expand.grid

v1 <- 1:2
v2 <- 3:4
expand.grid(v1, v2)
#  Var1 Var2
#1    1    3
#2    2    3
#3    1    4
#4    2    4

同样,对于数据帧的情况,有
merge
。(我敢肯定,这一问题几天前才被问到。)如果
merge
能更频繁地与我在一起,那么可能在适当的时候会想到。我不知道
merge
的这个功能,太好了!它可以在手册中的某个地方说明……就在昨天,问题。
d1
1 13
2 11

d2
3 12
4 10

> combine(d1,d2) <--- doesn't exist
1 13 3 12
1 13 4 10
2 11 3 12
2 11 4 10
v1 <- 1:2
v2 <- 3:4
expand.grid(v1, v2)
#  Var1 Var2
#1    1    3
#2    2    3
#3    1    4
#4    2    4
df1 <- data.frame(a = 1:2, b=3:4)
df2 <- data.frame(cat = 5:6, dog = c("a","b"))

expand.grid(df1, df2) # doesn't work so let's try something else
id <- expand.grid(seq(nrow(df1)), seq(nrow(df2)))
out <-cbind(df1[id[,1],], df2[id[,2],])
out
#    a b cat dog
#1   1 3   5   a
#2   2 4   5   a
#1.1 1 3   6   b
#2.1 2 4   6   b
df1 <- data.frame(a = 1:2, b=3:4)
df2 <- data.frame(cat = 5:6, dog = c("a","b"))
merge(df1, df2)
#  a b cat dog
#1 1 3   5   a
#2 2 4   5   a
#3 1 3   6   b
#4 2 4   6   b