从数据帧R中选择值的最佳组合

从数据帧R中选择值的最佳组合,r,R,我有一个20行10列的数据框。数据中的每个值都是一个介于0和10之间的数字 我想选择具有最高总和的值的组合,并且我必须从每列中选择一个且仅一个值 是否有一个ready r函数可以做到这一点,或者是一个已知算法的暗示 是否有一个r函数可以生成所有可能的组合,从中我可以选择一个和最高的组合 这就是你想要做的吗?我假设您的数据帧名为df 你能不能先求每列的最大值,然后求和?i、 比如SumsaplyMyDataFrame,max。或者这个简单的问题是一个更复杂的问题的代理,不能分解成独立的子问题?当你

我有一个20行10列的数据框。数据中的每个值都是一个介于0和10之间的数字

我想选择具有最高总和的值的组合,并且我必须从每列中选择一个且仅一个值

是否有一个ready r函数可以做到这一点,或者是一个已知算法的暗示


是否有一个r函数可以生成所有可能的组合,从中我可以选择一个和最高的组合

这就是你想要做的吗?我假设您的数据帧名为df


你能不能先求每列的最大值,然后求和?i、 比如SumsaplyMyDataFrame,max。或者这个简单的问题是一个更复杂的问题的代理,不能分解成独立的子问题?当你说值的组合时,你的确切意思是什么?而且,你肯定不想从10组20个值中生成每个值的组合。这将是20^10个组合,即10240000000000个组合。值的组合=从数据框中选取10个值。您必须从每列中选择一个值,并且这些值中的每一个都必须来自不同的行,因此,最大值的组合不一定会给出可能的最高值。理论上,解决方案不一定需要包含特定列的最大值。将其视为具有200个节点的图,其中每个节点都有一定的权重,并且与其他节点的连接有限,您需要找到通过节点的路径,这些节点的权重和是相同的biggest@Eyal好吧,我没有考虑过。我想知道您是否对360万个列顺序排列中的每一个都执行一次此代码,然后确定产生最大总和的结果,如果这能提供一个解决方案,尽管这是一个不雅观的解决方案。不幸的是,我不知道如何从数学上证明这一点。
maxList <- c(which(df$col1 == max(df[, 1]))) #Initialize list of row numbers with max value
total <- max(df[, 1])  #Initialize sum of allowable maximum values
combination <- c(total)  #Initialize list of those maximum values

for(i in 2:ncol(df)) {  #For the remaining columns in df
  subCol <- df[, i]
  for(j in 1:length(maxList)) {  #For the number of items in maxList
    subCol[maxList[j]] <- 0  #Set row values of previous maxima to zero
    maxList <- c(maxList, which(subCol == max(subCol)))  #Update maxList
  }
  combination <- c(combination, max(subCol))
  total <- total + max(subCol)  #Update total
}