我目前正试图找到一种方法来总结每个月(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
任何提示或建议都将不胜感激!
答案 0 :(得分:0)
我们可以尝试
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