Ich versuche, eine Tabelle wie folgt zu konvertieren:Expanding Spalte basierend auf einer anderen Spalte der Gruppierung (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
zu einer, die wie folgt aussieht:
# 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
dh eine Reihe pro user_id
und eine Erweiterung der pred
Spalte in pred_1
, pred_2
, etc. Irgendwelche Ideen?
UPDATE
Erste Frage gelöst wurde. Follow-up:
Mit dem tidyr::spread
Verfahren gibt es eine Möglichkeit, die group_size
-N
, so dass, um die Kappe beim Streuen, dauert es höchstens N
Werte aus jeder Gruppe?
Oder mit der Entwick-Version von data.table 'Bibliothek (data.table) verwenden können; dcast (setDT (df), user_id ~ rowid (user_id)) ' –
Danke allen, aber ich sehe nicht wirklich, wie das ein Duplikat der anderen Frage ist. Wenn überhaupt, ist dies eine viel prägnantere Möglichkeit, die Funktionalität von 'tidyr :: spread' offenzulegen. –
Die Lösung dort ist identisch. Und es gibt Dutzende von ähnlichen Lösungen überall in SO, während viele von ihnen von demselben Benutzer gepostet werden. Sie können einige von ihnen [hier] (http://stackoverflow.com/search?q=user%3A3732271+1%3A.N+dcast) und [hier] (http://stackoverflow.com/search?q = Benutzer% 3A3732271 + Zeilennummer + Spread) –