2013-04-16 6 views
0

Помогло ли мне помочь в использовании ifelse.Перекодирование категориальных переменных/факторов

У меня есть data.frame (dat) с категориальным переменным/фактором, называемым Q1 (dat$Q1). dat$Q1 было закодировано как 1,2,3 или 4. Мне нужно создать новый столбец data$new1, основанный на следующем правиле:

если dat$Q1==3 то dat$new1 должно быть дано новый код 1. В противном случае dat$new1 будет предоставлен код 0.

Каков наиболее эффективный способ сделать это, пожалуйста?

благодаря

ответ

3

Использование ifelse как в:

dat$new1 <- ifelse(dat$Q1==3, 1, 0) 
+0

Спасибо за быстрый ответ !! Новое на этом сайте, но я очень впечатлен :-) – user2284663

4

Просто:

dat$new1 <- 0+(dat$Q1==3) # or use as.numeric(.) 
+0

Проницательный маленький трюк. Очень умно. +1 –

+0

'as.numeric' имеет край, используя' microbenchmark'. Это кажется более идиоматичным. +1 – Zelazny7

+0

Согласовано, и если целью должно было быть значение 2 и 1, то используйте '1 + as.numeric (dat $ Q1 == 3)'. –

Смежные вопросы