Dplyr - создать новый столбец "группа чисел с десятичной дробью" - PullRequest
0 голосов
/ 11 декабря 2018

У меня есть фрейм данных: Ratio2016

Name      Percapita
Alabama    0.60
Alaska     0.40
Arizona    0.22
California 1.53

Чтобы создать листовую карту, основанную на цветах столбца Percapita, я хочу создать новый столбецcent_group 0.05-0.1 0.1-0.5 0.5-1.0 1.0-1.5

Мой код: `

ratio2016<- ratio2016 %>% 
   mutate(percent_group = case_when(
    percapita %in% 0.05:0.1 ~ 0.05-0.1,
    percapita %in% 0.1:0.5 ~ 0.1-0.5,
    percapita %in% 0.5:1.0 ~ 0.5-1.0,
    percapita %in% 1.0:1.5 ~ 1.0-1.5,
    percapita %in% 1.5:2.0 ~ 1.5-2.0))

Я получаю столбец только с" NA ". У меня есть 2 строки с Nas.

Где моя ошибка?Спасибо всем вам!

1 Ответ

0 голосов
/ 12 декабря 2018

%in% - проверка того, является ли значение членом набора, поэтому здесь не следует его использовать.Вам нужно between().

ratio2016 <- ratio2016 %>% 
  mutate(percent_group = case_when(
    between(percapita, 0.05, 0.1) ~ "0.05-0.1",
    between(percapita, 0.1, 0.5) ~ "0.1-0.5",
    between(percapita, 0.5, 1) ~ "0.5-1.0",
    between(percapita, 1, 1.5) ~ "1.0-1.5",
    between(percapita, 1.5, 2) ~ "1.5-2.0"))

Это даст вам ваш столбец.

Кстати, вы можете сделать это в меньшем количестве кода с помощью cut():

ratio2016 %>% mutate(percent_group =
    cut(percapita, c(0.05, 0.1, 0.5, 1, 1.5, 2), 
    labels = c("0.05-0.1","0.1-0.5", "0.5-1.0", "1.0-1.5", "1.5-2.0"))
  )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...