我知道标题听起来很基础,但我没有通过搜索找到解决方案。
我有一个像这样的数据框,其中 id 指的是参与者:
id condition
1 0
1 0
1 1
1 2
2 0
2 0
2 1
3 0
现在,一些参与者未能对条件“2”提供任何观察结果,我想创建一个新变量来指示参与者是否有任何“2”响应。所以结果应该是
id condition cond2
1 0 yes
1 0 yes
1 1 yes
1 2 yes
2 0 no
2 0 no
2 1 no
3 0 no
有一个简单的方法吗?预先感谢您!
```r
df <- structure(list(id = c(1L, 1L, 1L, 1L, 2L, 2L, 2L, 3L), condition = c(0L,
0L, 1L, 2L, 0L, 0L, 1L, 0L)), class = "data.frame", row.names = c(NA,
-8L))
library(dplyr)
df %>%
mutate(cond2 = if_else(any(condition == 2), "yes", "no"), .by = id)
# id condition cond2
# 1 1 0 yes
# 2 1 0 yes
# 3 1 1 yes
# 4 1 2 yes
# 5 2 0 no
# 6 2 0 no
# 7 2 1 no
# 8 3 0 no