【发布时间】:2016-08-01 18:48:30
【问题描述】:
我正在尝试像这样转换表格:
# 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 等。有什么想法吗?
更新
最初的问题已解决。跟进:
使用tidyr::spread 方法,有没有办法将group_size 限制为N,以便在传播时,最多从每个组中获取N 值?
【问题讨论】:
-
或者使用devel版本的data.table
library(data.table) ; dcast(setDT(df), user_id ~ rowid(user_id)) -
谢谢大家,但我真的不明白这是如何与另一个问题重复的。如果有的话,这是暴露
tidyr::spread功能的更简洁的方式 -
好的。我有一个更新的问题(以及下面评论的答案的单独问题)。