检查 R 中是否存在按 id 分组的值

check if a value exists group by id in R

我想根据以下条件定义一个变量new_var:

对于每个id,如果存在reference=1,则new_var=1;否则 new_var=0,例如:

id      reference 
A            0   
A            1     
B            0   
B            0  

创建一个 new_var,table 看起来像这样:

id      reference     new_var
A            0          1
A            1          1
B            0          0
B            0          0

我只知道我可以在SAS中使用语句case when,但在R中如何做到这一点?

这是一个 base R 选项 transform

transform(df1, new_var = as.integer(id %in% id[reference>0]))
#   id reference new_var
#1  A         0       1
#2  A         1       1
#3  B         0       0
#4  B         0       0