我正在开展一个学校项目,有一个包含 4,000 行的数据集。有 40 名参与者,每人大约有 100 行。我想创建一个数据集,将每个参与者的行折叠成汇总统计数据,最好是第 90 个百分位。我知道如何用 dplyr 找到平均值:
Means <- bladder %>%
group_by(id, group) %>%
summarise(across(everything(), list(mean)))
这效果很好。但我是否可以做同样的事情,但列出第 90 个百分位数而不是均值?
谢谢你!!
R中计算百分位数的函数是quantile
。我们可以指定probs = 0.9
获得第 90 个百分位。
这里我使用的是bladder
数据集来自survival
包来演示。
library(dplyr)
survival::bladder %>%
group_by(id, rx) %>%
summarize(across(everything(), quantile, probs = 0.9, .groups = "drop"))
# A tibble: 85 × 7
id rx number size stop event enum
<int> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
1 1 1 1 3 1 0 3.7
2 2 1 2 1 4 0 3.7
3 3 1 1 1 7 0 3.7
4 4 1 5 1 10 0 3.7
5 5 1 4 1 10 0.7 3.7
6 6 1 1 1 14 0 3.7
7 7 1 1 1 18 0 3.7
8 8 1 1 3 18 0.7 3.7
9 9 1 1 1 18 1 3.7
10 10 1 3 3 23 0 3.7
# … with 75 more rows
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)