如何使用R中的if-else条件分配值

时间:2014-09-04 18:12:15

标签: r

我的数据框有一列a。我想根据列'a'添加不同的列'b'。

有了这个逻辑:如果a> 10,b = double。如果a< 10,b =单身。

我该怎么做?

a b
2 single
2 single
4 single
11 double
12 double
12 double
45 double
4 single

2 个答案:

答案 0 :(得分:5)

您可以使用ifelse对if语句的向量进行操作。

ifelse(a>10, "double", "single")

所以你的代码看起来像这样

mydata <- cbind(a, ifelse(a>10, "double", "single"))

你还没有指定在a = 10的情况下做什么,所以我默认为单身。

答案 1 :(得分:1)

严格来说,if-else可在r中赋值,即

x1 <- if (TRUE) 1 else 2

是合法的。有关详细信息,请参见https://adv-r.hadley.nz/control-flow.html#choices

但是,由于这既不对测试条件进行向量化,也不对值分支进行向量化,因此不适用于问题详细信息中描述的特定情况,该情况涉及以有条件方式添加列。在这种情况下,可以使用ifelse或更安全的if_else(来自dplyr)。