Я перевожу набор данных о пути клиента с уровня агрегации пользователей на агрегацию на дневном уровне. Проблема в том, что я не могу просто суммировать или иметь в виду все столбцы, поскольку не все переменные можно агрегировать одинаково. Например, duration
- это переменная, которую я хочу суммировать с помощью среднего, а purchase_own
- это переменная, которую я хочу суммировать с помощью суммы.
Я использовал dplyr
, чтобы заставить это работать, но это дает мне ошибку. Я пробовал следующий код:
CJd <- CJre %>% group_by(date) %>% summarise_at(vars(purchase_own, purchase_any, CIT,
FIT, T1:T22, devicemobile, devicefixed, purchase_comp, POS_comp, POS_own, POS_any,
markov, first_touch, last_touch, linear_touch), sum)
%>% summarise_at(vars(duration, difference), mean) %>% summarise_at(CountTP, max)
Это приводит к ошибке:
Error in .f(.x[[i]], ...) : object 'duration' not found
Я подозреваю, что это означает, что summarise_at(vars(duration, difference), mean)
не допускается в качестве второго сводного кода. Теперь мой вопрос: как я могу написать функцию суммирования, чтобы суммирование было другим для некоторых переменных?
Фактические результаты заключаются в том, что выполняется только первый summarise_at
, что приводит к отсутствию переменных в моем наборе данных. Недостающие переменные должны быть обозначены соответственно mean
и max
. Ожидаемый результат - эти переменные, сгруппированные по date
и суммированные по названным функциям, mean или max добавляются в набор данных.