Как сопоставить числовой столбец с категориями - PullRequest
0 голосов
/ 19 сентября 2019

Я хочу сопоставить столбец во фрейме данных, содержащий числовые значения (рисунок 1), с группами (рисунок 2).

Я не реализовал это.Эти цифры представляют собой созданные вручную фреймы данных

рисунок 1: рисунок 2:

Правило здесь довольно простое

enter image description here

Было бы лучше, если бы решение использовало dplyr

Заранее спасибо!

Ответы [ 2 ]

2 голосов
/ 19 сентября 2019

Это случай для case_when()

library(dplyr)

data %>%
mutate(Group = as.factor(case_when(Value <1 ~ "s", Value > 3 ~ "l", TRUE ~ "m")))
1 голос
/ 19 сентября 2019

Мы можем использовать cut или findInterval

c("s", "m", "l")[findInterval(df$Values, c(1, 3, 5), left.open = TRUE) + 1]
#[1] "s" "m" "m" "m" "l" "l"

Если вы хотите включить его в цепочку dplyr

library(dplyr)

df %>%
  mutate(Group = c("s", "m", "l")[findInterval(Values, c(1, 3, 5),
                                  left.open = TRUE) + 1])

#  Values Group
#1      1     s
#2      2     m
#3      3     m
#4      3     m
#5      4     l
#6      5     l

данные

df <- data.frame(Values = c(1, 2, 3, 3, 4, 5))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...