我有数据框
df <- data.frame(e_1=c(1,2,3,4,5), e_2=c(1,3,5,7,9), e_3=c(2,4,6,8,1),
e_4=c(1,2,4,5,7), e_5=c(1,8,9,6,4), Lanes=c(3,4,3,5,4))
我尝试使用:
max(combn(df[,(1:5)],df$Lanes,FUN = function(i) rowSums(df[,(1:5)][i])))
我收到错误
Error in combn(df[, (1:5)], df$Lanes, FUN = function(i) rowSums(df[, (1:5)][i])) : length(m) == 1L is not TRUE
最佳答案
我想你可以尝试按行使用combn
,例如,
df$comb <- apply(df,1,function(v) max(combn(v[1:5],v["Lanes"],sum)))
这样
> df
e_1 e_2 e_3 e_4 e_5 Lanes comb
1 1 1 2 1 1 3 4
2 2 3 4 2 8 4 17
3 3 5 6 4 9 3 20
4 4 7 8 5 6 5 30
5 5 9 1 7 4 4 25
关于r - 数据框中跨列的最大组合总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64106735/