как выбрать более одной категории, используя ifelse - PullRequest
0 голосов
/ 28 апреля 2019

Я пытался поделить пять категорий переменной столбца genhlth на «хорошее здоровье» или «плохое здоровье».До сих пор я пробовал этот код.Каков наилучший способ классификации этих 5 категорий на 2?

brfss2013_subset2$goodhealth = ifelse(brfss2013_subset2$genhlth =="Excellent",
                                        "Very good", "Good", 1, 
                                    ifelse(is.na(brfss2013_subset2$genhlth), NA, 0))

1 Ответ

1 голос
/ 28 апреля 2019

Оператор %in% позволяет проверять вектор возможных значений.

brfss2013_subset2$goodhealth = ifelse(brfss2013_subset2$genhlth %in% c("Excellent", "Very good", "Good"), 1, 0)

Вам не нужно проверять NA, потому что ifelse() автоматически вернет NA, если введено значение NA.

Вы также можете воспользоваться тем, что TRUE имеет числовое представление 1, а FALSE - 0 и написать:

brfss2013_subset2$goodhealth = as.numeric(brfss2013_subset2$genhlth %in% c("Excellent", "Very good", "Good"))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...