如何展开列表中的.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)