У меня есть база данных, в которой каждый день повторяется несколько раз, поэтому есть несколько строк на одну и ту же дату. (Кстати, я использую пакет lubridate).
Что я хочу сделать, это:
Создайте столбец T1 и столбец T2 первого наименьшего и первого наивысшего значения цены. T1 возвращает пустые ячейки / ячейки NA, за исключением строк, в которых он находит первые самые высокие и самые низкие цены. Тем не менее, и вот где я застрял, я хочу, чтобы он рассмотрел дубликаты вместе. Так что это будет похоже на цикл: для первого набора дубликатов найдите T1 и T2, затем перейдите ко второму набору дубликатов и т. Д. ...
newdf4<-Data %>%
mutate(T1= max(which(settle < 120)))%>%
mutate(T2=min(which(settle> 120)))
Вот как выглядят мои данные:
<date> <dttm> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <lgl> <lgl>
1 2002-01-02 2002-01-10 00:00:00 118 125 125 125. 125. 55 NA NA
2 2002-01-02 2002-03-11 00:00:00 125 NA NA NA NA 0 NA NA
3 2002-01-02 2002-05-10 00:00:00 128 NA NA NA NA 0 NA NA
4 2002-01-02 2002-07-10 00:00:00 127 NA NA NA NA 0 NA NA
5 2002-01-02 2002-09-10 00:00:00 130 NA NA NA NA 0 NA NA
6 2002-01-02 2002-11-11 00:00:00 180 120 120 120 120 5 NA NA
Большое спасибо заранее.
РЕДАКТИРОВАТЬ:
dput(head(Data))
structure(list(Date = structure(c(11689, 11689, 11689, 11689,
11689, 11689), class = "Date"), Echeance = structure(c(1010620800,
1015804800, 1020988800, 1026259200, 1031616000, 1036972800), class =
c("POSIXct", "POSIXt"), tzone = "UTC"), Settle = c(118, 125, 128, 127,
130, 180), Open = c(125, NA, NA, NA, NA, 120), Haut = c(125,
NA, NA, NA, NA, 120), Bas = c(124.75, NA, NA, NA, NA, 120), Close =
c(124.75, NA, NA, NA, NA, 120), Vol_Q = c(55, 0, 0, 0, 0, 5), Bloc_Q = c(NA,
NA, NA, NA, NA, NA), Trades = c(NA, NA, NA, NA, NA, NA), `Vol_€` =
c(343062.5,
0, 0, 0, 0, 30000), O.I. = c(908, 3645, 1603, 100, 157, 1210)), row.names =
c(NA,-6L), class = c("tbl_df", "tbl", "data.frame"))