取一些通用数据
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
值(类型),将打印相应的中位数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))
答案 0 :(得分:0)
使用data.table
包的替代解决方案:
library(data.table)
dt <- data.table(df)
dt[, .(median = median(C)), by = c("A", "B")][order(A, B)]
答案 1 :(得分:0)
使用dplyr
的简单解决方案是:
df %>%
group_by(A,B)%>%
summarise(C = median(C))
阅读上面的代码如:
第一组由A和B组成,然后按每组的中位数对C进行总结。