0
Diese Frage baut auf einer anderen Frage auf, die ich zuvor gestellt habe. In Anbetracht der MWE unter:R & dplyr: aggregieren und Summenvariablen erstellen
test <- as.data.table(data.frame(event_id = c("A","B","A","A","B"),
income = c(1,2,3,4,5),
location = c("PlaceX","PlaceY","PlaceX","PlaceX","PlaceY")))
test
event_id income location
1: A 1 PlaceX
2: B 2 PlaceY
3: A 3 PlaceX
4: A 4 PlaceX
5: B 5 PlaceY
Wie würde ich bekommen:
event_id mean_inc loc_PlaceX loc_PlaceY
(fctr) (fctr) (numeric) (numeric)
1 A 2.666667 3 0
2 B 3.500000 0 2
Was ich habe, so weit:
test %>%
group_by(event_id, location) %>%
summarise(mean_inc = mean(income))
Source: local data table [2 x 3]
Groups: event_id
event_id location mean_inc
(fctr) (fctr) (dbl)
1 A PlaceX 2.666667
2 B PlaceY 3.500000
Bitte beachten Sie, ich habe etwa 10 Spalten, die ich würde zu breakdown wie ich versuche mit der Spalte location
oben zu tun. Außerdem gibt es Millionen von Zeilen.
Vielleicht ein Tutorial auf dplyr und tidyr lesen erfolgen. – Frank
@Frank das ist hilfreich, danke – user2205916
können Sie versuchen, diese test%>% group_by (event_id, location)%>% zusammenfassen (mean_inc = mean (Einkommen), count = n()) 'Es wird Ihnen die Anzahl geben der Position in 1 Spalte, können Sie dann die Ergebnisse für die gewünschte Ausgabe umformen –