如果我有一个包含 2 个因子(a 和 b)、2 个水平(1 和 2)和 1 个变量(x)的简单数据框,我如何获得 x 的中值:每个因子 a 水平的中值 x因子 b 的水平,以及 a*b 的每个组合?
library(dplyr)
df <- data.frame(a = as.factor(c(1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2)),
b = as.factor(c(1,1,1,1,2,2,2,2,1,1,1,1,2,2,2,2)),
x = c(runif(16)))
我尝试了各种(许多)版本:
df %>%
group_by_(c("a", "b")) %>%
summarize(med_rate = median(df$x))
对于因子 a 的每个水平的中位数 x,结果应如下所示:
中位数
1 0.58811
2 0.53167
对于因子 b 的每个水平的中位数 x 就像这样:
b 中位数
1 0.60622
2 0.46096
对于 a 和 b 的每个组合的中位数 x 就像这样:
ab 中位数
1 1 0.66745
1 2 0.34656
2 1 0.50903
2 2 0.55990
提前感谢您的帮助。