列表的行列表

时间:2016-08-31 14:55:44

标签: r list

我想生成不同元素的所有组合的列表。我发现expand.grid函数似乎做得很好。

lCombi<-expand.grid(c(1,2),c(4,5,6),c(7,8))

     Var1 Var2 Var3
1     1    4    7
2     2    4    7
3     1    5    7
4     2    5    7
5     1    6    7
6     2    6    7
7     1    4    8
8     2    4    8
9     1    5    8
10    2    5    8
11    1    6    8
12    2    6    8

现在,如果我理解的话,这是一个包含12行3个元素的列表。但我想要的是一个包含12个元素的列表。我试图将其转置,将其转​​换为矩阵然后返回列表但没有工作。所以我使用了我的前R方式来做事并提出:

iLength=nrow(lCombi)
lResult<-list()
for(i in 1:iLength){
    lResult[[i]]<-lCombi[i,]
}

获取我的lResult列表,其中包含我想要的内容。你能告诉我更有效的方法吗?

1 个答案:

答案 0 :(得分:4)

split函数非常适合将data.frame切换到data.frames列表中:

lResult <- split(lCombi, 1:nrow(lCombi))

如果您希望每个列表元素都是向量,请使用

lapply(lResult, unlist)