Как объединить конкретные значения двух переменных в новую переменную (?) - PullRequest
0 голосов
/ 31 мая 2019

Я пытаюсь объединить / объединить конкретные значения двух переменных в новую переменную.

Две переменные, которые нужно объединить:
AL.INCOME -> (дихотомические, тогда как 1 указывает, что индивидуумнаходится в дециле с 1-м по 4-й доход (= плохой), а 2 означает, что человек находится в дециле с 7-м или 10-м доходом (= богатый), другие децили с доходом = NA)

AL.SKILL -> (дихотомическийв то время как 1 указывает на то, что индивид имеет низкую квалификацию, 2 указывает на то, что индивид является высококвалифицированным, а в противном случае = NA)

Из них я хочу объединить другую дихотомическую переменную, где 1 обозначает всех бедных иВ то же время менее квалифицированный, а 2 обозначает всех людей, которые богаты и в то же время высококвалифицированные, тогда как все другие люди, которые не отвечают обоим критериям, классифицируются как NA.Имя этой новой переменной должно быть AL.INCOME.SKILL.

Обе переменные относятся к одним и тем же предметам (693 наблюдения, что является подвыборкой «Албания» из ESS6 2012).

Заранее прошу прощения, если это очень простой вопрос, который я здесь задаю, и я не использую правильную терминологию для определенных выражений.Я довольно плохо знаком с R и программированием в целом.


Я уже пытался объединить переменные с перекодированием (из библиотечного вагона) и построением фрейма данных (который состоит только из двух переменных AL.INCOME & AL.SKILL)

## This is how I created AL.INCOME (dichotomous):
AlbanienVar$AL.INCOME <- recode(AlbanienVar$hinctntaAL, "1:4=1;7:10=2;else=NA")

## This is how I created AL.SKILL (dichotomous):
AlbanienVar$AL.SKILL <- recode(AlbanienVar$isco08AL, "7000:9629=1;1000:2659=2;else=NA")

##The data frame I already computed:
Trial1 <- as.data.frame(AL.INCOME, AL.SKILL) 

В качестве замечания: AL.SKILL содержит NA, тогда как AL.INCOME - нет.Надеюсь, это не помеха.

1 Ответ

0 голосов
/ 31 мая 2019

Похоже ли это на решение вашей проблемы?

library(tidyverse)

df <- tibble(AL.INCOME = c(1, 2, 2), AL.SKILL = c(1, 2, NA))

df %>%
  rowwise() %>%
  mutate(new_cat = ifelse(sum(AL.INCOME, AL.SKILL) %in% c(2, 4), AL.INCOME, NA))
#> Source: local data frame [3 x 3]
#> Groups: <by row>
#> 
#> # A tibble: 3 x 3
#>   AL.INCOME AL.SKILL new_cat
#>       <dbl>    <dbl>   <dbl>
#> 1         1        1       1
#> 2         2        2       2
#> 3         2       NA      NA
...