【发布时间】:2020-09-28 17:17:26
【问题描述】:
我有数据框
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])))
我得到了错误
组合错误(df[, (1:5)], df$Lanes, FUN = function(i) rowSums(df[, (1:5)][i])) : length(m) == 1L 不正确
【问题讨论】:
-
您的示例的预期输出是什么?您在
combn中使用df$Lanes表示m,它在这里期望一个值而不是5 的向量。您的function(i) df[, 1:5][i]部分也将不起作用,因为每个i都是一个数据框(您可以检查这个combn(df[, 1:5], 3, simplify = FALSE)[[1]]这是第一个iifm = 3) -- 你在这部分具体要做什么? -
@rawr 我想对数据框 df 的每一行执行此操作。因此,根据
combn中的m等于该行的Lanes值,找到前5 列组合的最大总和。
标签: r function dataframe combinations