Справка по группировке dplyr, как выбрать значение из другого столбца на основе другого, если пустое, заменить на N / A - PullRequest
0 голосов
/ 08 мая 2019

У меня есть фрейм данных со следующими столбцами

userid: уникальное значение для пользователя

transactionId: уникальное значение для транзакции (у пользователя может быть много разных заказов)

create_at: дата создания заказа

веб-страница: веб-страница, на которой пользователь пришел, чтобы создать этот заказ (у пользователя могут быть разные страницы для разных заказов или он может быть пустым)

Я группирую по идентификатору пользователя с кодом ниже, чтобы получить некоторые переменные идентификатора пользователя, но мне нужно еще одну переменную после того, как я сгруппирую ее, одну с именем "firstpage"

эта переменная будет первой веб-страницей, которую имеет пользователь,так, другими словами, значение веб-страницы для этого идентификатора пользователя, где созданный_аталог имеет свое минимальное значение, если для его веб-страницы не существует значения минимального значения созданного_атата, тогда используйте «N / A» в качестве значения для этого идентификатора пользователя

df_RFM <- data2 %>% group_by(user_id) %>% 
      summarise(recency = as.numeric(as.Date("2019-02-21")-max(created_at)),
                frequenci = n_distinct(transactionId), 
                monetary = sum(total_in_pennies)/n_distinct(transactionId), 
                last_active = max(created_at), 
                min(transactionId))

Любая помощь в создании этой переменной "firstpage", пожалуйста, спасибо.

1 Ответ

0 голосов
/ 08 мая 2019

Сортируйте переменную create_at, используя df_RFM <- data2 %>% group_by(user_id) %>% arrange(.,created_at, .by_group = TRUE), и затем вы можете использовать slice, чтобы получить первую строку для каждого идентификатора пользователя.Используя это, вы можете mutate новый столбец на основе значений веб-страницы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...