问题
I would like to generate a table with groups per range, the mean and the count of variables in each group.
I have a data.frame like below:
Variable Shap
1 0.10
6 0.50
7 0.30
5 0.40
9 0.10
9 0.25
2 0.24
9 0.23
5 0.22
5 0.21
1 0.20
4 0.19
5 0.18
8 0.17
6 0.16
And would like to get a dataframe like this
Range Shap_Avg Counts
0-5 0.2175000 8
6-9 0.2442857 7
For grouping and mean I have this code, but I don´t know how I can include the count function
# Group and mean
Group <- data %>%
group_by(Range = cut(Variable, breaks = c(0, 5, 9),
labels = c("0-5", "6-9"))) %>%
summarise(Shap_Avg = mean(Shap))
回答1:
With dplyr
:
df $ Labels <- cut(df$Variable, breaks = c(0,5, 9))
df %>%
group_by(Labels) %>%
summarise(Mean = mean(Shap), N = n())
# A tibble: 2 x 3
Labels Mean N
<fct> <dbl> <int>
1 (0,5] 0.218 8
2 (5,9] 0.244 7
Data:
df <- structure(list(Variable = c(1L, 6L, 7L, 5L, 9L, 9L, 2L, 9L, 5L,
5L, 1L, 4L, 5L, 8L, 6L), Shap = c(0.1, 0.5, 0.3, 0.4, 0.1, 0.25,
0.24, 0.23, 0.22, 0.21, 0.2, 0.19, 0.18, 0.17, 0.16)), class = "data.frame", row.names = c(NA,
-15L))
来源:https://stackoverflow.com/questions/58281267/mean-per-group-and-with-count-of-variables-in-group