Я довольно плохо знаком с R и не могу решить следующую проблему: В моем фрейме данных df мне нужно заменить значения в векторе на предыдущее значение в том же векторе, если они ниже, чем значения в предыдущем ряду.Это нужно сгруппировать по ID.
Пример DF выглядит следующим образом:
ID x
1 2
1 2
1 4
1 2
1 1
2 NA
2 4
2 2
и я хочу, чтобы это выглядело так:
ID x
1 2
1 2
1 4
1 4
1 4
2 NA
2 4
2 4
Я пробовал следующий код:
df <- df %>%
group_by(ID) %>%
mutate(x= replace(x, x< lag(x), lag(x)))`
Но я получаю эту ошибку:
Ошибка в mutate_impl (.data, dots): Ошибка оценки: недопустимые NA в подписанных назначениях.
Как я могу решить эту проблему (благосклонно с dplyr
)