将组列添加到数据框

时间:2015-12-01 08:04:26

标签: r

说我有以下数据框:

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}

但它不适用于数组。我该怎么办?

1 个答案:

答案 0 :(得分:2)

在这种特殊情况下,你可以使用pmin(正如我在上面的评论中所述):

df$group <- pmin(df$count, 3)

通常,if / else构造不适用于向量,但您可以使用函数ifelse。它需要三个参数:首先是条件,然后是满足条件的结果,最后是条件不满足时的结果。对于您的示例,您将编写以下内容:

df$group <- ifelse(df$count < 3, df$count, 3) 

请注意,在您的示例中,pmin解决方案更好。只需提及ifelse解决方案即可完成。