说我有以下数据框:
dx=data.frame(id=letters[1:4], count=1:4)
# id count
# 1 a 1
# 2 b 2
# 3 c 3
# 4 d 4
我想(语法上)添加一个列,只要count
<3,就会得到计数,否则为3,所以我会得到以下内容:
# id count group
# 1 a 1 1
# 2 b 2 2
# 3 c 3 3
# 4 d 4 3
我想用
dx$group=if(dx$count<3){dx$count}else{3}
但它不适用于数组。我该怎么办?
答案 0 :(得分:2)
在这种特殊情况下,你可以使用pmin
(正如我在上面的评论中所述):
df$group <- pmin(df$count, 3)
通常,if / else构造不适用于向量,但您可以使用函数ifelse
。它需要三个参数:首先是条件,然后是满足条件的结果,最后是条件不满足时的结果。对于您的示例,您将编写以下内容:
df$group <- ifelse(df$count < 3, df$count, 3)
请注意,在您的示例中,pmin
解决方案更好。只需提及ifelse
解决方案即可完成。