R - Dplyr - Как добавить вычисляемое поле на основе текущих data.frame

Я группирую фрейм данных по столбцу "месяц", а затем суммирую столбец "пользователи".

Используя этот код:

Count_Users_By_Month <- Users_By_Month %>% group_by(month) %>% 
  summarise(Users = length(unique(users)))

Я понимаю, что я на 100% уверен, что это правильно:

     month       Users
1 Diciembre      4916
2 Noviembre      3527

Вопрос 1: Как добавить столбец, показывающий изменение в "Diciembre" на основе "Noviembre"?(В процентах%).

Нужно создать столб для вариации месяц к месяцу

Формула (псевдокод) такая:

(DiciembreUsers-NoviembreUsers)/NoviembreUsers

** Конечно, значение для Noviembre будет ясным, потому что нет данных за предыдущий месяц (октябрь).

Я попробовал этот код, чтобы сделать это, но получаю ошибку:

Count_Users_By_Month <- Users_By_Month %>% group_by(month) %>% 
  summarise(Users = length(unique(users))) %>%
  mutate(Variacion = (Count_Users_By_Month[1,2]-Count_Users_By_Month[2,2])/Count_Users_By_Month[2,2])

Ошибка: не совместим с STRSXP

** Последнее редактирование:

Проблема решена, спасибо @Khasha. Смотрите комментарии:

Изменил "лаг" на "свинец".... это сработало. Просто добавили "привести" к разделительной части, чтобы получить формулу правильно.

mutate(variation=(Users-lead(Users))/lead(Users))

1 ответ

Это исходный фрейм данных:

    month       Users
1 Diciembre      4916
2 Noviembre      3527

Это ответ:

Count_Users_By_Month <- Users_By_Month %>% group_by(month) %>% 
                        summarise(Users = length(unique(users))) %>%
                        mutate(variation=(Users-lead(Users))/lead(Users))

Нужно выяснить, как работает "привести". Все кредиты @Khashaa, смотрите его ответ в комментариях. Просто изменили формулу, добавили "привести" в части деления, чтобы получить правильный ответ

Другие вопросы по тегам