根据 R 数据框中另一个变量的不存在值创建一个新变量

问题描述 投票:0回答:1

我知道标题听起来很基础,但我没有通过搜索找到解决方案。

我有一个像这样的数据框,其中 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 dataframe data-manipulation
1个回答
0
投票

数据

```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
© www.soinside.com 2019 - 2024. All rights reserved.