我知道向量可以表示n元组,向量列表可以表示一组n元组。一个简单的算法就是
AxB<-list();k<-1L
for(i in seq_along(A))for(j in seq_along(B)){AxB[[k]]<-c(A[[i]],B[[j]]);k<-k+1L}
是否有更优雅的数据结构和算法来实现这一目标?
答案 0 :(得分:3)
Giva尝试expand.grid
功能:
a<-list(1,2,6,3)
b<-list("a", "b", "c")
expand.grid(a,b)
您的输出将是:
Var1 Var2
1 1 a
2 2 a
3 6 a
4 3 a
5 1 b
6 2 b
7 6 b
8 3 b
9 1 c
10 2 c
11 6 c
12 3 c
还要查看outer
函数。但在这种情况下,您的变量必须是矢量或数组。
答案 1 :(得分:1)
我们可以使用CJ
data.table
library(data.table)
CJ(a, b)
a <- c(1,2,6,3)
b <- c("a", "b", "c")