How can we use a custom function after group_by()?
I checked similar posts (1, 2, and 3), but my current code returns the same values for all groups.
> data
village A Z Y
<chr> <int> <int> <dbl>
1 a 1 1 500
2 a 1 1 400
3 a 1 0 800
4 b 1 0 300
5 b 1 1 700
z <- 1
data %>%
group_by(village) %>%
summarize(Y_village = Y_hat_village(., z))
Y_hat_village <- function(data_village, z){
# Calculate the mean for a specific z in a village
data_z <- data_village %>% filter(Z==get("z"))
return(mean(data_z$Y))
}
I want to have (500 + 400)/2 = 450 for village "a" and 700 for village "b".