У меня есть столбец со значениями даты. Я пытаюсь пометить самую последнюю дату как 1, а самую последнюю - как 2. и т. Д.
Здесь я использую dplyr
для достижения этой цели, но после выполнения кода я получаю постоянный результат как '1 '
date = c("2020-01-20","2020-01-21","2020-01-22","2020-01-23","2020-01-24")
df = as.data.frame(date)
df$date= as.Date(df$date)
max_date=max(df$date)
min_date =min(df$date)
ll <- seq(min_date, max_date, by = "day")
df$day_no = case_when(
( max(df$date) ==as.Date(ll[5])) ~ as.integer(1),
( max(df$date)-1 ==as.Date(ll[4])) ~ as.integer(2),
( max(df$date)-2 ==as.Date(ll[3])) ~ as.integer(3),
( max(df$date)-3 ==as.Date(ll[2])) ~ as.integer(4),
( max(df$date)-4 ==as.Date(ll[1])) ~ as.integer(5),
TRUE ~ as.integer(NA)
)
Вывод, который я ищу, следующий:
day_no = c(5,4,3,2,1)
day_no = as.integer(day_no)
df = data.frame(date,day_no)
Заранее спасибо.