我有一个包含20行和10列的数据框。数据中的每个值都是0到10之间的数字。
我想选择具有最高总和的值的组合,并且我必须从每列中选择一个且仅一个值。
是否存在执行此操作的就绪r函数或已知算法的含义。
是否有一个r函数可以生成所有可能的组合,我将从中选择具有最高总和的组合?
答案 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
}