Построение суммы динамического числа строк в dplyr - PullRequest
0 голосов
/ 27 января 2019

Мой df выглядит примерно как первые три столбца следующего:

ID VAL LENGTH SUM
1  1   1      1
1  1   1      1
1  1   2      2
1  1   2      2
2  0   1      0
2  3   1      0
2  4   2      3

Я хочу добавить четвертый столбец, который определяется как сумма первого значения группы в LENGTH-первом значении в VAL.

Как мне это сделать?

1 Ответ

0 голосов
/ 27 января 2019

Вы можете сделать:

library(dplyr)

df %>%
  group_by(ID) %>%
  mutate(SUM = sapply(LENGTH, function(x) sum(VAL[1:x])))

Выход:

# A tibble: 7 x 4
# Groups:   ID [2]
     ID   VAL LENGTH   SUM
  <int> <int>  <int> <dbl>
1     1     1      1     1
2     1     1      1     1
3     1     1      2     2
4     1     1      2     2
5     2     0      1     0
6     2     3      1     0
7     2     4      2     3
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...