Создайте фиктивную переменную с пакетом опроса - PullRequest
0 голосов
/ 16 июня 2020

Я хочу преобразовать переменную в фиктивную с помощью пакета опроса.

У меня есть сложный план выборки, определяемый:

library(survey)

prestratified_design <- svydesign(
  id = ~ PSU ,
  strata = ~ STRAT,
  data = data,
  weights = ~ weight ,
  nest = TRUE)

В наборе данных есть переменная для образования с 8 разные категории:

# A tibble: 8 x 3
education     n  prop
  <int> <int> <dbl>
1     1  2919 20.8 
2     2  5551 39.5 
3     3   447  3.18
4     4   484  3.45
5     5  3719 26.5 
6     6    91  0.65
7     9   790  5.63
8    10    39  0.28

Я хочу создать фиктивную переменную для категорий 5 и 10 == 1 и других == 0.

Я знаю, что мне нужно использовать функцию обновления, но я не знаю, как использовать if в пакете опроса. Я пробовал:

prestratified_design <- update( 
  prestratified_design, 
    dummy_educ = as.numeric (education == 5 & education == 10) 

, но это явно не сработало.

спасибо!

1 Ответ

2 голосов
/ 16 июня 2020

Вы можете создавать фиктивные переменные в R через ifelse(), если количество категорий равно двум.

df$dummy_educ = with(df, ifelse(education == 5 | education == 10, 1, 0))

Если категорий больше, вы можете использовать dplyr::case_when(), а если вы создаете манекены из факторной переменной, model.matrix() быстро и лучше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...