我的数据框有一列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
答案 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
)。