【发布时间】:2019-09-02 07:42:38
【问题描述】:
我正在计算连续变量的不同分位数的中位数和值。我想一步添加所有列。这有可能做到这一点。以下是一个可重现的示例。
df <- data.frame(group = rep(c('group1','group2'),50),
x = rnorm(100),
y = rnorm(100))
df %>%
gather('variable','value', -group) %>%
group_by(group, variable) %>%
summarise(median = round(quantile(value,0.5, na.rm = T),2),
iqr25 = round(quantile(value,0.25, na.rm = T),2),
iqr75 = round(quantile(value,0.75, na.rm = T),2))
输出
# A tibble: 4 x 5
# Groups: group [2]
group variable median iqr25 iqr75
<fct> <chr> <dbl> <dbl> <dbl>
1 group1 x 0.06 -0.74 1.04
2 group1 y -0.36 -1.03 0.45
3 group2 x -0.04 -0.85 0.62
4 group2 y 0.06 -0.56 0.89
这个总结步骤可以不写分位数函数3次就完成吗?
我做了一个解决方法。但是有没有一个很好的方法来做到这一点。
df %>%
gather('variable','value', -group) %>%
group_by(group, variable) %>%
summarise(s = toString(round(quantile(value, c(0.25,0.5,0.75),na.rm = T),2))) %>%
separate(s, into = c('q25','median','q75'), sep = ',')
【问题讨论】: