Я использовал следующую работу для столбца, где я вычитал значение строки на значение строки перед ней.

mutate(diff = v1 - lag(v1, default = first(v1)))

Иногда приведенный выше код дает мне отрицательные значения, я этого не хочу. Какой хороший способ заменить отрицательные числа на 0, который является ответвлением от приведенного выше кода?

1
purple_plop 15 Апр 2020 в 21:42

1 ответ

Лучший ответ

Мы можем использовать

library(dplyr) 
df1 %>%
     mutate(diff = v1 - lag(v1, default = first(v1)),
            diff = replace(diff, diff < 0, 0))
1
akrun 15 Апр 2020 в 19:03