【发布时间】:2023-01-20 11:47:29
【问题描述】:
鉴于以下数据结构,我想将“类别”按“值”给定的每一年的十分位数进行划分,并计算每年和每个十分位数变量“值”的平均值和中位数。
df <- data.frame(Category = rep(LETTERS[1:15], each = 6),
Year = rep(2010:2015, 15),
value = runif(90, 50, 100))
我试过这个,但后来我在计算每个十分位数每年的平均值和中位数时遇到了问题(虽然不确定这是 100% 正确的)。
a <- df %>%
mutate(quantile = ntile(value, 10))
我想按年获得一个数据框,并用每年每个十分位数的平均值和中位数进行十分位数
为了将 df 分成十分位数,我尝试了这个,这显然给了我一个结果(不确定是否 100% 正确)
a <- df %>%
mutate(quantile = ntile(value, 10))
为了计算均值,我尝试了两种方法但都失败了:
使用数据框
w <- setDT(a)[, Mean := mean(value), by = .(Year, quantile)][]
并使用 dplyr
z <- a %>% group_by(Year,quantile) %>% summarise (x = mean(value))
结果,我正在寻找的是一个数据框,每年一行,十分位数及其平均值和中间值。
【问题讨论】:
标签: r