R Как найтиInterval или ntile из dplyr с помощью условного - PullRequest
1 голос
/ 09 июля 2020

Моя цель - найти интервал непрерывной реакции модели, который попадает в зависимости от профессии. Вот воспроизводимый пример:

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))

Спасибо

1 Ответ

1 голос
/ 09 июля 2020

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
...