首页 > 解决方案 > 如何从 R 中的多个其他变量中创建一个新变量?

问题描述

我正在使用了解社会调查来衡量种族骚扰。该调查基于两个阶段的问题,这意味着首先询问参与者他们是否曾经是 f.ex。受到攻击(是/否)以及这些原因是什么(种族、国籍等),然后一旦他们选择了原因,他们就会被进一步询问这种形式的骚扰发生在哪里。

我想从中创建一个变量。

因此,我想首先创建一个变量,表示人们因种族而受到骚扰。因此,我需要从不同的位置一起创建一个变量(a_resattackedw1_1_3=1 + a_resattackedw1_2_3=1 + ...)。

在 SPSS 我这样做是这样的:

##compute attacked_ethn=0

if(a_resattackedw1_1_3=1) attacked_ethn=1.
if(a_resattackedw1_2_3=1) attacked_ethn=1.
if(a_resattackedw1_3_3=1) attacked_ethn=1.
if(a_resattackedw1_4_3=1) attacked_ethn=1.
if(a_resattackedw1_5_3=1) attacked_ethn=1.
if(a_resattackedw1_6_3=1) attacked_ethn=1.
if(a_resattackedw1_7_3=1) attacked_ethn=1.
if(a_resattackedw1_97_3=1) attacked_ethn=1.

add value labels attacked_ethn 0 'not mentioned' 1 'mentioned'.

我如何在 R 中做到这一点?

此外,在我为所有出于种族动机的原因创建了先前的变量之后,如何为因种族原因而受到攻击创建一个变量?

同样,在 SPSS 中我是这样做的:

#compute attacked due to racism variable#

IF  (a_attacked_dv = 1) attacked=SUM(attacked_ethn,attacked_nat,attacked_rel).
VARIABLE LABELS  attacked 'attacked for racial reasons'.
EXECUTE.

FREQUENCIES VARIABLES=attacked
/ORDER=ANALYSIS.

这个的R代码是什么?

谢谢您的帮助!

标签: rspss

解决方案


这是进行计算的一种简单方法:

library(dplyr)
yourDF <- yourDF %>% mutate(
    attacked_ethn=1*(
      a_resattackedw1_1_3 == 1 | 
      a_resattackedw1_2_3 == 1 |
      a_resattackedw1_3_3 == 1 |
      a_resattackedw1_4_3 == 1 |
      a_resattackedw1_5_3 == 1 |
      a_resattackedw1_6_3 == 1 |
      a_resattackedw1_7_3 == 1 |
      a_resattackedw1_97_3 == 1)
    ) %>%
 mutate(attacked=if_else(a_attacked_dv == 1, attacked_ethn + attacked_nat + attacked_rel, NULL))

请注意,此代码非常简单-一旦您在 R 语言中学习了更多内容,就可以对其进行改进(+ 学习使用标签等来呈现您的数据-这与 SPSS 非常不同)。


推荐阅读