Как создать кумулятивный максимум для столбца даты - PullRequest
0 голосов
/ 25 сентября 2019

У меня есть фрейм данных (или data.table) со столбцом дат.Я хочу создать новый столбец с максимальной датой для всех предыдущих записей (не включая текущую запись)

Спасибо.

Следующий код создает столбец (premax), который содержит максимумзначение (cummax) 'end' для строк до текущей строки включительно.Я хотел бы сделать это, где «конец» является переменной даты.Я также хотел бы иметь возможность исключить текущую строку (думаю, строки строки sql). Похоже, cumsum не поддерживает типы даты.

library(dplyr)
#> 
#> Attaching package: 'dplyr'
#> The following objects are masked from 'package:stats':
#> 
#>     filter, lag
#> The following objects are masked from 'package:base':
#> 
#>     intersect, setdiff, setequal, union


id<-c(1,1,1,1,2,2,2,2)
start<-c(1,2,3,4,2,3, 4,5)
end<-  c(2,5,4,7,4,10,6,12)

df<-data.frame(id,start,end)


df %>% mutate(premax=cummax(end))
#>   id start end premax
#> 1  1     1   2      2
#> 2  1     2   5      5
#> 3  1     3   4      5
#> 4  1     4   7      7
#> 5  2     2   4      7
#> 6  2     3  10     10
#> 7  2     4   6     10
#> 8  2     5  12     12

1 Ответ

0 голосов
/ 25 сентября 2019

Ваше описание не завершено

Если вы используете SQL, предлагается столбец типа DateTime2

Если это json, вы можете добавить новое значение ко всем из них, прокручивая

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