如何展开列表中的.grid特定对象以形成新列表

如何展开列表中的.grid特定对象以形成新列表,r,list,R,List,我的数据清单如下: a<-list(10,c(8,9),5,14,c(3,7),c(2,3),5,13,c(3,4),4,5,8,12,c(2,3),c(5,7)) a我们可以使用gl创建分组索引,splita序列,使用索引对列表元素进行子集,并使用expand.grid lapply(split(seq_along(a), as.numeric(gl(length(a), 3, length(a)))), function(i) exp

我的数据清单如下:

a<-list(10,c(8,9),5,14,c(3,7),c(2,3),5,13,c(3,4),4,5,8,12,c(2,3),c(5,7))

a我们可以使用
gl
创建分组索引,
split
a序列,使用索引对
列表
元素进行子集,并使用
expand.grid

lapply(split(seq_along(a), as.numeric(gl(length(a), 3, length(a)))),
                         function(i) expand.grid(a[i]))
我们也可以使用
sapply
,但要确保使用
simplify=FALSE
作为选项

OP的代码带有
simplify=FALSE
给出

 sapply(1:(length(a)/3), function(x)
       {expand.grid(a[1:3+3*x-3])}, simplify=FALSE)
根据
?sapply

简化:逻辑或字符串;结果应该简化吗 如果可能,是向量、矩阵还是更高维数组?对于 很显然,它必须命名,而不是缩写。默认值为TRUE, 如果合适,返回向量或矩阵;如果合适,则返回简化= “数组”结果可能是“秩”(=长度(dim)())1)的数组 高于乐趣的结果(X[[i]])


太好了!非常感谢你!O(∩_∩)太好了!谢谢!如果您的列表是三的倍数…
lappy(as.data.frame(matrix(a,3)),expand.grid)