在R中添加扩展网格的条件?

有没有办法将条件/限制合并到R中的expand.grid中?

例如,在创建网格时,如何防止c(1,1,1)c(2,2,2)的组合出现?有没有一种可扩展的解决方案,可以在许多限制下工作?我的网格很大,我的内存不能处理它,例如Error: cannot allocate vector of size 32.0 Gb,所以网格创建后的子集不是一个选项。

expand.grid(A = rep(1:2),
            B = rep(1:3),
            C = rep(1:4))

以下代码不起作用:

expand.grid(A[!((A==1 & B==1 & C==1) & (A==2 & B==2 & C==2))] = rep(1:2),
            B[!((A==1 & B==1 & C==1) & (A==2 & B==2 & C==2))] = rep(1:3),
            C[!((A==1 & B==1 & C==1) & (A==2 & B==2 & C==2))] = rep(1:4))

as.data.frame(expand.grid(A = rep(1:2),
                          B = rep(1:3),
                          C = rep(1:4)))[!((A==1 & B==1 & C==1) & (A==2 & B==2 & C==2))]

谢谢!

转载请注明出处:http://www.intrusion-fire.net/article/20230330/2302613.html