首页 > 解决方案 > 如何根据 R 中的两个分类值创建新变量?

问题描述

我有一个婚姻状况变量,可能的值是“已婚”“离婚”“丧偶”“分居”“未婚”“未婚夫妇的一部分”。

我希望创建一个名为single的新变量,如果marital是“已婚”或“未婚夫妇的一部分”,则将其归类为“Not Single”,否则归类为“Single”。

正在考虑类似下面的内容,但使用某种 OR 运算符,即“已婚”或“未婚夫妇的一部分”。

dataset <- dataset %>%
mutate(single = ifelse(marital == “Married”, "Not Single", " Single"))

我对 R 很陌生,希望有人能提供帮助。谢谢你的时间!

标签: rdplyr

解决方案


您已经找到了一个很好的解决方案,但是由于您特别询问了 or 运算符,因此在 R 中它是|.

dataset <- dataset %>%

mutate(single = ifelse( marital == "Married" | marital == "Part of an unmarried couple",
                        "Not single", 
                        "single")

请注意,它|,而不是||

& 和 && 表示逻辑 AND 和 | 和 || 表示逻辑或。较短的形式执行元素比较的方式与算术运算符大致相同。较长的形式从左到右评估,仅检查每个向量的第一个元素。仅在确定结果之前进行评估。较长的形式适用于编程控制流,通常在 if 子句中首选。

(从https://stat.ethz.ch/R-manual/R-devel/library/base/html/Logic.html复制)


推荐阅读