У меня есть df, где столбец A - это уникальный идентификатор, B - фактически совокупная группировка, всегда начиная с 0, C - это итог. Хотите, чтобы в столбце D была совокупная сумма C на основе B.
, например, начните с:
A = 1:20
B = c(0,1,2,3,4,0,1,0,1,2,3,4,5,6,7,8,0,1,2,3)
C = c(0,4,1,7,0,1,2,5,4,3,2,1,4,8,7,2,1,2,3,4)
test = data.frame(A, B, C)
test df:
A B C
1 1 0 0
2 2 1 4
3 3 2 1
4 4 3 7
5 5 4 0
6 6 0 1
7 7 1 2
8 8 0 5
9 9 1 4
10 10 2 3
11 11 3 2
12 12 4 1
13 13 5 4
14 14 6 8
15 15 7 7
16 16 8 2
17 17 0 1
18 18 1 2
19 19 2 3
20 20 3 4
Хотите получить общую столбец для отображения:
A B C total
1 1 0 0 0
2 2 1 4 4
3 3 2 1 5
4 4 3 7 12
5 5 4 0 12
6 6 0 1 1
7 7 1 2 3
8 8 0 5 5
9 9 1 4 9
10 10 2 3 12
11 11 3 2 14
12 12 4 1 15
13 13 5 4 19
14 14 6 8 27
15 15 7 7 34
16 16 8 2 36
17 17 0 1 1
18 18 1 2 3
19 19 2 3 6
20 20 3 4 10
Я пробовал различные циклы for и while, но не могу заставить его работать:
test$total <- 0
for (i in test$A) {
if(test$B == 0) {
test$total <- test$B
} else {
test[i,4] <- test[i,3] + test[(i-1), 2]
}
}