【问题标题】:R How to findInterval or ntile from dplyr using conditionalR如何使用条件从dplyr中findInterval或ntile
【发布时间】:2023-03-27 11:22:01
【问题描述】:

我的目标是找到基于专业的模型连续响应的区间。 这是一个可重现的示例:

tbl = tibble(profession = c(rep('doctor', 50), rep('professor', 75), rep('student', 75)), response = rnorm(200))

我想要实现的是这样的:

tbl <- tbl %>% group_by(profession) %>% mutate(rank = ntile(10))

谢谢你

【问题讨论】:

  • 你必须告诉哪一栏,mutate(rank = ntile(response, n = 10))

标签: r dplyr percentile


【解决方案1】:

dplyr函数ntile需要两个参数,列名和n

library(dplyr)

tbl %>%
  group_by(profession) %>% 
  mutate(rank = ntile(response, n = 10))
## A tibble: 200 x 3
## Groups:   profession [3]
#   profession response  rank
#   <chr>         <dbl> <int>
# 1 doctor       0.278      7
# 2 doctor       0.586      8
# 3 doctor       0.0847     6
# 4 doctor       1.99      10
# 5 doctor       1.16       9
# 6 doctor       0.741      9
# 7 doctor      -1.19       2
# 8 doctor      -0.332      5
# 9 doctor       0.378      7
#10 doctor       0.649      8
## … with 190 more rows

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-09
    • 1970-01-01
    • 1970-01-01
    • 2017-04-29
    • 1970-01-01
    • 2019-01-30
    相关资源
    最近更新 更多