Использование dplyr для маркировки областей - PullRequest
1 голос
/ 09 апреля 2019

Я пытаюсь создать столбец области в наборе данных, в котором я указываю диапазон координат, и он должен ввести соответствующую область на основе условия.Код, который я использовал, выглядит следующим образом:

Я использовал dplyr и несколько ifelse, чтобы сделать это, но, похоже, это не дает мне правильный результат.

train = train %>%
  mutate(area = ifelse(cood < 3750023.25, 'Area 1',
                   ifelse(3750023.25 >= cood & cood < 3759048.50, 'Area 2',
                          ifelse(3759048.50 >= cood & cood < 3768073.75, 'Area 3',
                                 ifelse(3768073.75 >= cood, 'Area 4', NA)))))

Результаты не совсемсоответствуя тому, что я должен ожидать.например, первая строка имеет значение 3751013, но она дает мне область 3, когда она должна дать мне область 2. Что может быть не так в этом?

1 Ответ

2 голосов
/ 09 апреля 2019

Как сказано в комментариях, используйте case_when.

train = train %>%
  mutate(area = case_when(cood < 3750023.25 ~ 'Area 1', 
                          3750023.25 >= cood & cood < 3759048.50 ~ 'Area 2',
                          3759048.50 >= cood & cood < 3768073.75 ~ 'Area 3',
                          3768073.75 >= cood ~ 'Area 4',
                          TRUE ~ NA))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...