【发布时间】:2020-09-20 16:07:20
【问题描述】:
我想在我的dat 中创建新列,用值填充
满足一个条件。所以,我想保留value where regime == "SA" 并将这个值填充到新列vals.sa 的整个组中。
这结合了filter 和mutate,但我不确定它们的正确组合是什么? Filter 只是保持满足条件的行,但是如何将这个值扩展到组中的所有行?
我的数据:
dat <- data.frame(id = c(1,1,2,2,2,2,3,3),
regime = c("SA", "B", "SA", "B", "C", "F", "SA", "D"),
value = c(3,5,1,2,5,6,7,8))
使用dplyr处理数据
dat %>%
# group data by id
group_by(id) %>%
# how to write this condition and get values instead or TRUE/FALSE?
mutate(val.sa = regime == "SA")
填入val.sa值对应regime == "SA"的预期输出
id regime value val.sa
<dbl> <fct> <dbl> <dbl>
1 1 SA 3 3
2 1 B 5 3
3 2 SA 1 1
4 2 B 2 1
5 2 C 5 1
6 2 F 6 1
7 3 SA 7 7
8 3 D 8 7
【问题讨论】: