有没有办法将条件/限制合并到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