高效的方式基于多个约束从数据框中选择行

时间:2018-02-28 02:10:25

标签: r

要设置我的示例,假设我已经使用4个变量(ABCD)执行了简单的线性优化,其中“权重”每次运行的“和”值具有随机分量(意味着每次运行可能具有不同的最优解)。鉴于25次运行的结果,我可以创建一个虚拟矩阵,告诉我每个变量是否包含在每个变量的最优解中。使用以下作为示例:

library(dplyr)

set.seed(123)

Run <- 1:25
A <- sample(c(0,1), 25, T)
B <- sample(c(0,1), 25, T)
C <- sample(c(0,1), 25, T)
D <- sample(c(0,1), 25, T)

df <- data.frame(Run, A, B, C, D)

现在我有了这个结果的虚拟矩阵,我希望能够精确选择10行,这样选定的10行符合AB,{{1 }和C(会有多个解决方案)。例如,假设我要选择10行,使D包含5次以上,其他3个变量包含2到7次,是否有可自动执行此操作的库或算法?

我觉得我可以诚实地做另一个A优化,但我很难想到如何构建它以获得10(或lpsolve)个结果。优化也不会有目标或方向。我可以再创建两个nv1虚拟变量v2,然后说rep(1, 25)必须等于10,目标是最大化v1 (总是10)?当然还有我的其他限制。

感谢您提出的所有建议。

0 个答案:

没有答案