求和列如果另一列中的值拟合标准[r]



我目前正在尝试,毫无用处,找到一种方法来总结我每个月(M1,M2等)的数据帧(余额)的一列 - 如果金额每个月的值高于某个值(例如,小于1)。

我尝试了循环和lapply公式,但是得到各种错误,如下所示。不幸的是,由于DF太大,我无法手动执行此操作。

这是我到目前为止尝试过的事情,也是一个示例DF:

df["<=1M",] <- for (i in 1:ncol(df)){for (j in 1:nrow(df)){sum(df$Balance[which(df[i,j]<=1)]}}
df["<=1M",] <- lapply(df, function(i) sum(df$Balance[cumulative[i,1:ncol(df)] <= 1]))
M1  M2  M3  M4  M5  Balance
0   0   0   1   2   100
1   2   2   3   3   200
0   0   0   0   0   200
1   1   1   1   1   200
1   2   3   4   5   250

任何提示或建议都将不胜感激!

我们可以尝试

as.vector(sapply(df[1:5], function(x) sum(df$Balance[x <=1])))
#[1] 950 500 500 500 400

或使用vectorized方法

colSums(df$Balance*(df[1:5] <=1))
# M1  M2  M3  M4  M5 
#950 500 500 500 400 

最新更新