Ich habe eine Datenbank (user_reg
), die Kunden Informationen (customer_id
), deren Anmeldetag (reg_date2
) und das Datum ihrer Aufträge (order_date2
, oft> 1 pro Kunde).dplyr :: group_by verlässt Variablen ungruppierten
Ich mag 1) wissen, wann der erste Auftrag stattfand und dann 2) am Ende mit einem tbl
mit einzigartigen user_id
, reg_date2
und first_order
.
Nach dem Ausführen des Codes unter
user_reg %>% select(user_id, reg_date2, order_date2) %>%
group_by(user_id) %>%
mutate(first_order=min(order_date2)) %>%
select(user_id, reg_date2, first_order) %>%
arrange(user_id) %>%
group_by(user_id)
ich immer noch mehrere Zeilen pro user_id
.
user_id reg_date2 first_order
<int> <date> <date>
1 -1 2015-11-03 2015-11-25
2 1 2013-10-24 2014-10-11
3 1 2013-10-24 2014-10-11
4 1 2013-10-24 2014-10-11
5 1 2013-10-24 2014-10-11
6 1 2013-10-24 2014-10-11
Irgendwelche Ideen, wie man es beheben kann?
Klingt wie ein Job:
Alternativ (aber mit mehr Typisierung),
reg_date2
halten kann, indem es insummarise
getan werden? – aosmithmein Ziel ist es, eine Tabelle mit allen genannten Variablen zu haben, summarize() gibt mir nur user_id und first_order. Außerdem, selbst wenn ich versuche, mehrere Datenrahmen zu erstellen, jede mit user_id und einer Variablen von Interesse, und dann sie zusammenzufügen, habe ich immer noch mehrere Einträge pro user_id –
Nun, 'muate' wird immer die gleiche Anzahl von zurückgeben Zeilen als das ursprüngliche Dataset. In diesem einfachen Fall wäre es einfach, Ihre zusätzliche Spalte beizubehalten, indem Sie 'reg_date2' als Gruppierungsvariable verwenden oder sie in' summarize' einschließen (zB 'reg_date2 = unique (reg_date2'). Wenn Sie' muate' bevorzugen), Dann brauchst du etwas wie "distinct" nach. – aosmith