использование знаков «больше» и «равно» в R

#r

#r

Вопрос:

Я пытаюсь сократить переменную, чтобы создать коэффициент с 3 с тремя уровнями «маленький», который равен (от -бесконечности до -1.645), средний, который равен (от -1.645 до 1.645) и большой (от 1.645 до положительной бесконечности)

Комментарии:

1. dplyr::case_when(x < -1.645 ~ "Low", x < 1.645 ~ "Middle", x >= 1.645 ~ "High")

2. база R, которую вы можете попробовать: new_vec <- cut(vec, breaks = c(-Inf, -1.645, 1.645, Inf), labels = c("small", "medium", "large"))

Ответ №1:

Самый простой способ сделать это с помощью base R — следовать предложению от @Ben, используя cut() функцию:

 x <- rnorm(1000, mean = 0, sd = 4)

y <- cut(x, breaks = c(-Inf, -1.645, 1.645, Inf), labels = c("small", "medium", "large"))
  

Это dplyr также довольно легко сделать, используя case_when() функцию, предложенную @Phil . Я бы просто добавил between() функцию посередине, чтобы сделать намерение кода более понятным.

 library(dplyr)

y <- case_when(
  x < -1.645 ~ "small",
  between(x, -1.645, 1.645) ~ "medium",
  x > 1.645 ~ "large"
)