Ich habe den folgenden Datenrahmen und meine Absicht ist es, alle IDs zu finden, die unterschiedliche Verwendung aber den gleichen TYP haben.multidplyr und group_by() und filter()
ID <- rep(1:4, each=3)
USAGE <- c("private","private","private","private",
"taxi","private","taxi","taxi","taxi","taxi","private","taxi")
TYPE <- c("VW","VW","VW","VW","MER","VW","VW","VW","VW","VW","VW","VW")
df <- data.frame(ID,USAGE,TYPE)
Wenn ich
df %>% group_by(ID, TYPE) %>% filter(n_distinct(USAGE)>1)
laufen bekomme ich das gewünschte Ergebnis. Aber mein ursprünglicher Datenrahmen hat> 2 Millionen Zeilen. Daher möchte ich alle meine Kerne verwenden, um diese Operation auszuführen.
habe ich versucht, diesen Code mit multidplyr:
f1 <- partition(df, ID)
f2 <- f1 %>% group_by(ID, TYPE) %>% filter(n_distinct(USAGE)>1)
f3 <- collect(f2)
Aber dann erscheint die folgende Meldung:
Warning message: group_indices_.grouped_df ignores extra arguments
nach
f1 <- partition(df, ID)
und
Error in checkForRemoteErrors(lapply(cl, recvResult)) :
4 nodes produced errors; first error: Evaluation error: object 'f1' not found.
nach
f2 <- f1%>% group_by(ID, TYPE) %>% filter(f1, n_distinct(USAGE)>1)
Was ist der richtige Weg wäre, die ganze Operation in multidplyr zu implementieren? Danke vielmals.