Вы можете использовать diff
с sign
, предполагая, что df
- ваш фрейм данных, а ROR
- имя столбца.
df$direction <- c(NA, c("Down", "No change", "Up")[sign(diff(df$ROR)) + 2])
Используя пример
x <- c(1, 2, 3, 4, 2, 2, 1)
c(NA, c("Down", "No change", "Up")[sign(diff(x)) + 2])
#[1] NA "Up" "Up" "Up" "Down" "No change" "Down"
Или мы можем использовать case_when
library(dplyr)
df %>%
mutate(direction = case_when(ROR > lag(ROR) ~ "Up",
ROR < lag(ROR) ~ "Down",
ROR == lag(ROR) ~ "No change",
TRUE ~ NA_character_))