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

时间:2015-11-04 19:36:28

标签: r

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

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

是否存在执行此操作的就绪r函数或已知算法的含义。

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

1 个答案:

答案 0 :(得分:0)

这是你想要做的吗? (我假设您的数据框名为df。)

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
}