如何在dplyr中基于ntile()-groups应用变异?

问题描述 投票:0回答:1

我尝试根据相似的questions查找答案

tidyverse的新手,我有以下问题:如何使用ntile()估算dplyr的中位数

# Data    
library(survival)
data(lung)

第一

p <- lung %>% mutate(test=ntile(inst,3))

现在就这样

table(p$test)

 1  2  3 
76 76 75 

我想估计中位数时间,即每p$timep$test

类似

p %>% mutate(test=ntile(inst,3), test.time=median(time[test %in% 1:3]))

没有提供我想要的。

r dplyr
1个回答
0
投票

我们可以使用'test'作为分组变量来计算'time'的median

library(dplyr)
p %>% 
  group_by(test = ntile(inst, 3)) %>%
  mutate(test.time=median(time))

如果需要汇总的输出,则将mutate替换为summarise

© www.soinside.com 2019 - 2024. All rights reserved.