在更改级别数时将两个数字变量重新编码为一个的问题

问题描述 投票:0回答:1

这是我第一次发帖,直到现在我总是通过别人的问题找到我所有的答案,但我似乎被困在一个相当简单的步骤上。

我正在使用数据集 (WVS),在将两个因子变量设为数字后,我仍在努力重新编码它们。

在使用“as.numeric”之后,使用“table”我在开始重新编码之前为我的两个变量获得了这些级别:

variable1.num
  1   2   3   4 
380 705 534 418 

variable2.num
  1   2   3   4 
 443 565 554 466 

我想创建一个具有三个级别的新变量。我希望(新变量的)第 3 级是变量 1 的第 1 级,(新变量的)第 2 级是变量 2 的第 1 级,而(新变量的)第 3 级是整个其余部分。 由于调查问题的制作方式,一个案例不可能有 variable1 level 1 和 variable2 level 1,至少在理论上是这样。

为了简化我想要: 变量 1 级别 1 变为 3(不管变量 2 的级别是什么) 变量 2 级别 1 变为 2(无论变量 1 的级别是什么) variable 1 level 2 or 3 or 4 or variable 2 level 2 or 3 or 4 变成 1

我试着用这段代码来做:

new.variable[variable1.num == 1]<-3
new.variable[variable2.num == 1]<-2
new.variable[variable1.num == 2|variable1.num ==3|variable1.num == 4|variable2.num == 2
|variable2.num == 3|variable2.num == 4]<-1

但我感到害怕 在

[<-.factor
(
*tmp*
, variable1.num == 2 | variable1.num == 3 | : 无效因子水平,NA 生成

有什么建议吗?提前谢谢你!

r numeric recode levels
1个回答
0
投票
 new_var <- setNames(c(variable1.num[1], variable2.num[1], 
                    sum(variable1.num[-1], variable2.num[-1])), 1:3)
 (new_var <- as.table(new_var))
   1    2    3 
 380  443 3242 
© www.soinside.com 2019 - 2024. All rights reserved.