Я пытаюсь преобразовать таблицу, как это:Расширение колонки на основе другого столбца группировки (dplyr/tidyr)
# A tibble: 10 x 2
user_id pred
<int> <fctr>
1 27 electronics
2 27 home
3 38 health
4 60 electronics
5 60 beauty
6 92 home
7 92 electronics
8 106 health
9 117 home
10 117 women
на тот, который выглядит следующим образом:
# A tibble: 6 x 3
user_id pred_1 pred_2
<dbl> <chr> <chr>
1 27 electronics home
2 38 health NA
3 60 electronics beauty
4 92 home electronics
5 106 health NA
6 117 home women
т.е. ряд за user_id
и расширение колонки pred
до pred_1
, pred_2
и т. д. Любые идеи?
UPDATE
Первоначальный вопрос был решен. Последующее:
Используя метод tidyr::spread
, есть способ, чтобы увенчать group_size
к N
так, что, когда распространение, оно принимает в большинстве N
значений из каждой группы?
Или с помощью версии Devel из data.table 'библиотеки (data.table); dcast (setDT (df), user_id ~ rowid (user_id)) ' –
Спасибо всем, но я действительно не вижу, как это дубликат другого вопроса. Во всяком случае, это гораздо более лаконичный способ разоблачения функциональности 'tidyr :: spread' –
Решение там одинаково. И есть множество подобных решений по всему SO, в то время как многие из них размещены одним и тем же пользователем. Вы можете проверить некоторые из них [здесь] (http://stackoverflow.com/search?q=user%3A3732271+1%3A.N+dcast) и [здесь] (http://stackoverflow.com/search?q = пользователь% 3A3732271 + row_number + spread) –