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。
获取一些通用数据
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。