【发布时间】:2018-01-25 13:23:28
【问题描述】:
我希望有人能够帮助我解决这个问题。目前,我正在尝试使用多个 if 语句对数据集进行分箱的所有可能组合。例如,我将尝试将数据从 -Inf 到 i、i 到 j、j 到 Inf。然后我有以下代码:
for (i in 1:10) {
for (j in 1:10) {
if(i/10 == j/10) next
data$variable1_optim <- cut(data$variable1,breaks = c(-Inf, i/10, j/10, Inf))
best_result[i,j] <- bin_power2(data$variable1_optim)
if (min(tabulate(data$variable1_optim)) / NROW(data$variable1_optim) <= 0.05)
best_result[i,j] <- NA
if (length(unique(data$variable1_optim)) < 3)
best_result[i,j] <- NA
}
}
目前这段代码的问题是 [i = 0.1 , j = 0.2] 的组合产生与 [i=0.2 , j=0.1] 相同的结果。因此,我想以某种方式生成所有可能的组合,并将它们输入到我的循环中。不幸的是,我不知道如何做到这一点,谷歌搜索我的答案也没有成功。
【问题讨论】:
-
请提供一个小的示例数据集以供使用,并显示您想要的输出。请使用
dput(...) -
你考虑过使用
for(i in 1:9)和for(j in (i+1):10)吗? -
@CPak 我已经解决了,谢谢:)。
-
@Freguglia 仍然会给出太多的组合,但使用 t(combn(c())) 可以解决问题 :) 感谢您的帮助~
标签: r combinations