【问题标题】:Create new variable in R with assumptions from SPSS file使用 SPSS 文件中的假设在 R 中创建新变量
【发布时间】:2018-02-19 13:36:22
【问题描述】:

我在 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

这里有人可以帮助我提供代码吗?

【问题讨论】:

  • 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, newvalue, spssdata_sub$gest)
  • 我不确定我是否理解这段代码。如果我运行它,我只会得到一个具有 NA 值的新变量。抱歉,我对 R 很陌生,正在努力学习!
  • 您能否提供一个可重现的示例(有关说明,请参阅here)?
  • 也许是对@Renu 评论的补充:您必须将 newvalue 更改为实际值。
  • 谢谢,我想要的是 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 然后我希望将它们排除在新变量之外

标签: r spss recode


【解决方案1】:

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

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)

【讨论】:

  • 不,第一个只返回一个不适用的列表,我认为可能有问题,它说和所有标准?我需要一个 OR 标准,因为个人不需要被排除在外。我试过了|插入&,但这无济于事。在 #2 上,我得到了一个错误。
  • 如果是 OR 那么它应该是 | 而不是 &amp;
【解决方案2】:

如果您真的是指任一条件,则以下是一种方法

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))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-12-20
    • 1970-01-01
    • 2017-03-24
    • 1970-01-01
    • 2020-03-15
    • 1970-01-01
    • 2020-01-18
    • 1970-01-01
    相关资源
    最近更新 更多