Добавить флаг события в фрейм данных - PullRequest
0 голосов
/ 04 мая 2018

Для каждого человека я хотел бы добавить флаг случая для моего фрейма данных, когда сумма больше нуля. Мне нужен этот флаг для дальнейших расчетов. Вот чего я хотел бы достичь.

dfin <- 

ID AMT 
1  50
1  NA
1  10
1  NA
2  15
2  NA
2  NA
3  10
3  15

dfout <- 

ID  AMT FLAG
1   50   1
1   NA   1
1   10   2
1   NA   2
2   15   1
2   NA   1
2   NA   1
3   10   1
3   15   2

Как мне добиться этого в R?

Ответы [ 2 ]

0 голосов
/ 04 мая 2018

Как я изменил вывод, который я хочу. Я здесь отвечаю на вопрос, основанный на ответе, предоставленном @ G5W, чтобы сделать это ID

library(dplyr)
dfout <- dfin %>%
    group_by(ID) %>%
    mutate(FLAG = cumsum(!is.na(AMT)))
0 голосов
/ 04 мая 2018

Вы можете проверить, какие значения не являются NA, и вычислить совокупную сумму.

dfout = dfin
dfout$FLAG = cumsum(!is.na(dfin$AMT))
dfout
  ID AMT FLAG
1  1  50    1
2  1  NA    1
3  1  10    2
4  1  NA    2
5  2  15    3
6  2  NA    3
7  2  NA    3
8  3  10    4
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...