使用SPSS文件中的假设在R中创建新变量

时间:2018-02-19 13:36:22

标签: r spss recode

我在R中读取了我的SPSS文件,如果做出这样的假设,我想重新编码一个新变量。具体来说:

如果符合以下条件,我想将spssdata_sub$gest变量转换为新变量:

spssdata_sub$indusert != 2 & spssdata_sub$ivf != 1 & spssdata_sub$leie != 3 & spssdata_sub$svkompl_II != 7 & spssdata_sub$svkompl_II != 2 & spssdata_sub$svkompl_II != 1

这里有谁可以帮我提供代码?

2 个答案:

答案 0 :(得分:0)

以下代码之一是否适合您?

这是Renu解决方案的改编版本

spssdata_sub$gest <- ifelse(spssdata_sub$indusert != 2 & spssdata_sub$ivf != 1 & spssdata_sub$leie != 3 & spssdata_sub$svkompl_II != 7 & spssdata_sub$svkompl_II != 2 & spssdata_sub$svkompl_II != 1, spssdata_sub$gest, NA)

或此代码用于过滤观察结果:

library(dplyr)
spssdata_sub_new <- spssdata_sub %>% 
filter(indusert != 2 & ivf != 1 & leie != 3 & svkompl_II != 7 & svkompl_II != 2 & ssvkompl_II != 1)

答案 1 :(得分:0)

如果您真的是指其中一个条件

,则以下是一种方法
Mynewdata <- dplyr::filter(spssdata, indusert != 2, ivf != 1, leie != 3,
             svkompl_II != 7 & svkompl_II != 2 & svkompl_II != 1)

仅保留既不是条目,也不以其他方式放置具有indusert = 2或ivf = 1等条目的条目......其中一个条件足以排除它。

附加组件:或类似的东西:

Mynewdata <- dplyr::filter(spssdata, indusert != 2, ivf != 1, leie != 3,
             !(svkompl_II %in% c(7,2,1))