Создайте новое значение на основе столбцов в группах в R - PullRequest
0 голосов
/ 06 мая 2020

Если интервалы между двумя датами в группе (bankAcctID) одинаковы, тогда создайте новый столбец diff между двумя датами; в противном случае создайте значение NA.

Данные

structure(list(bankAcctID = c(439940L, 439940L, 439940L, 439940L, 439940L, 
439940L, 535211L, 535211L, 535211L, 535211L), date = structure(c(18334, 
18347, 18348, 18362, 18369, 18376, 18331, 18341, 18347, 18355 ), class = 
"Date")), row.names = c(NA, -10L), class = c("grouped_df", "tbl_df", "tbl", 
"data.frame"), groups = structure(list(bankAcctID = c(439940L, 535211L), 
.rows = list(1:6, 7:10)), row.names = c(NA, -2L), class = c("tbl_df", 
"tbl", "data.frame"), .drop = TRUE))

1 Ответ

0 голосов
/ 06 мая 2020

Трудно сказать, каков ваш идеальный результат, но вот возможное решение:

df %>%
  group_by(bankAcctID) %>%
  mutate(dummy = date - lag(date)) %>%
  mutate(diff = ifelse(dummy == lag(dummy), dummy/2, NA))

Переменная dummy включена для иллюстрации logi c, вы можете удалить ее, добавив строка %>% select(-dummy)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...