gpt4 book ai didi

R:条件expand.grid函数

转载 作者:行者123 更新时间:2023-12-04 15:58:52 24 4
gpt4 key购买 nike

我想找到匹配特定条件的矢量元素的所有组合。函数expand.grid返回所有可能的组合,而无需检查特定条件。使用expand.grid函数之后可以测试特定条件,但是在某些情况下,可能的组合数量太大,无法使用expand.grid生成它们。因此,有一个功能可以让我在生成所有可能的组合的同时检查条件。

这是问题的简化版本:

A <- seq.int(12, from=0, by=1)*15
B <- seq.int(27, from=0, by=1)*23
C <- seq.int(18, from=0, by=1)*18
D <- seq.int(33, from=0, by=1)*10

out<-expand.grid(A,B,C,D) #out is a dataframe with 235144 x 4 as dimensions
idx<-which(rowSums(out)<=400 & rowSums(out)>=300) #Only a small fraction of 'out' is needed
results <- out(idx,)

最佳答案

一言以蔽之。毕竟,如果您先验地知道哪些组合是理想/不理想的,则可以将其从扩展中排除,例如expand.grid(A[A<20],B[B<15],...)。在一般情况下(我假设这是您的真正问题),您没有简单的方法来排除部分输入向量。

您可能只想编写一个多级循环,依次测试每个组合并保存或拒绝该组合。这将很慢(再次,除非您提出一些聪明的算法来预测全部为TRUE或FALSE的区域)。因此,从长远来看,最好使用一些R-package来对大型计算(和数据集)进行分区,以免超出内存限制。

既然我已经说了这么多,那么有人将发布一个链接到一个软件包,该软件包正是这样做的:-(

关于R:条件expand.grid函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18760697/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com