r - 为 R 中所有列的多行创建摘要(第 90 个百分位)统计数据的新数据框

标签 r dplyr percentile

我正在开展一个学校项目,并且有一个包含 4,000 行的数据集。有 40 名参与者,每人大约有 100 行。我想创建一个数据集,将每个参与者的行折叠成汇总统计数据,最好是第 90 个百分位。我知道如何使用 dplyr 查找平均值:

Means <- bladder %>% 
  group_by(id, group) %>% 
  summarise(across(everything(), list(mean)))

这效果很好。但我是否可以做同样的事情,但列出第 90 个百分位数而不是均值?

谢谢!!

最佳答案

R 中计算百分位数的函数是quantile。我们可以指定 probs = 0.9 来获得第 90 个百分位。

这里我使用 survival 包中的 bladder 数据集进行演示。

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

关于r - 为 R 中所有列的多行创建摘要(第 90 个百分位)统计数据的新数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72157696/

相关文章:

r - 如何使用 dplyr 对列进行范围分组?

r - 改变每一个可能的列组合

splunk - 如何在 Splunk 中准确计算第 99.9 个百分位数

excel - 当中值计算为零时崩溃(程序没有响应)(VBA)

r - 按不同的降序排列数字

css - 如何使用 css 设置传单搜索框位置(leaflet.extra 包)

r - 在模式发生后拆分字符串

r - r 中的 mutate 和 truncate 函数未产生所需的输出

python - 从分组数据框中获取百分位数

r - 从列中提取日期并在 R 中缺少年份时添加年份