ich einen Datenrahmen „my_data“ habe zusammenfassen, die 6 Spalten enthalten:mehr verschiedenen group_by Variablen (dplyr) mit einem Datenrahmen
group1.members group2.members group3.members price price.2 price.3
1 1 1 800 877 334
1 2 1 850 877 334
2 2 1 859 877 334
3 1 1 859 877 334
3 1 2 870 877 334
2 2 2 870 877 334
2 3 2 870 877 334
1 3 3 880 877 334
ich ROW zusammenzufassen möchte, in den „Preis“ Spalten von my_data mehrere separate Datenrahmen, wobei group_by in einer anderen Spalte "group.member" verwendet wird. Es scheint jedoch, dass group_by dies nicht erlaubt?
Dies ist, was ich im Sinn hatte:
my_data <- as.data.frame(data)
num_of_years <- c(1,2,3)
for(i in 1:length(num_of_years)){
price_means <- my_data %>% group_by(my_data[i]) %>%
select(-value) %>%
summarise_each(funs(mean(., na.rm=TRUE))) %>%
ungroup
assign(paste("PriceMeans",i,sep=""),price_means, envir = .GlobalEnv)
}
Mit anderen Worten:
- für i = 1, Verwendung group_by (group1.members)
- für i = 2, Verwendung group_by (group2.members)
- für i = 3, Verwendung group_by (group3.members)
EDIT: UNTER MEINE LÖSUNG:
for(i in 1:length(my_groups)){
# construct the group to select
current.group <- my_groups[i]
current.group <- paste0("memb_", current.group)
# construct the groups to exclude
groups.to.drop <- my_groups[-i]
groups.to.drop <- paste0("memb_", groups.to.drop)
# Get Means
Means <- data %>% group_by_(as.name(current.group)) %>%
select(- c(ID, get(groups.to.drop))) %>%
summarise_each(funs(mean(., na.rm = TRUE)))
Means <- Means[,-1:-(length(my_groups)-1)]
Means <- as.list(Means)
assign(x = paste0("Means_",i),
value = Means,
envir = parent.env(new.env())
}
müssten Sie verwenden lazyeval Verfahren zum Schreiben deine Funktionen. – theArun
danke! Ich habe mir die Dokumentation von lazyeval angeschaut, aber nicht verstanden, wie ich das umsetzen kann. Könnten Sie vielleicht ein kurzes Beispiel geben? – wsp1morlet
Dieser spezielle Link erklärt, wie der Lazyeval von der dplyr-Bibliothek behandelt wird [link] (https://cran.r-project.org/web/packages/dplyr/vignettes/nse.html) – theArun