如何将两个变量的特定值组合成一个新变量(?)

时间:2019-05-31 10:23:47

标签: r combinations recode

我正在尝试将两个变量的特定值合并/合并为新变量。

要结合的两个变量:
AL.INCOME->(一分为二,而1表示某人处于收入十分位数的第1至第4位(=贫困),而2则表明某人处于收入十分位数的第7或10位(=富裕),其他收入为十进制= NA)

AL.SKILL->(二分法,而1表示一个人是低技能,2表示一个人是高技能,否则= NA)

在这些中,我想结合另一个二分变量,其中1表示所有贫穷的人,同时技能水平较低,2表示所有富有的人,同时技能水平较高,而其他所有表示不能同时满足这两个条件的分类为NA。 此新变量的名称应为AL.INCOME.SKILL。

两个变量都指向相同的主题(693个观测值,这是ESS6 2012中的子样本“阿尔巴尼亚”)。

如果这是我在这里提出的一个非常基本的问题,并且对于某些表达式我没有使用正确的术语,请您提前感到抱歉。我对R和编程一般还是很陌生。


我已经尝试将变量与recode结合(通过库车)并通过构建数据框(仅由两个变量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 :(得分:0)

这看起来像解决您的问题的方法吗?

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