R 中 3x3 table 中值的摘要

summary of median values in a 3x3 table in R

获取一些通用数据

set.seed(123)
A <- sample(1997:2000, 50, replace=TRUE)
B <- sample(1:3, 50, replace=TRUE)
C <- rnorm(50)
df <- data.frame(A,B,C)

我想为每个 A 值(年份)和每个 B 值(类型)创建一个摘要 table,将打印相应的中位数 C价值

我试过下面的代码

参考 this 网站

mytable <- table(df$A, df$B, median(df$C))
ftable(mytable)

here

require(plyr)
ddply(df, .(A), summarize,
      type=unique(B),
      median=median(C))

但似乎都不起作用。所需的输出应与此类似:

使用 data.table 包的替代解决方案:

library(data.table)
dt <- data.table(df)
dt[, .(median = median(C)), by = c("A", "B")][order(A, B)]

使用 dplyr 的简单解决方案是:

df %>%
    group_by(A,B)%>%
    summarise(C = median(C))

像这样阅读上面的代码:
第一组按 A 和 B,然后按每组的中位数总结 C。