【发布时间】:2020-04-20 07:13:48
【问题描述】:
我正在尝试根据site 组和使用case_when 的条件在数据框中创建一个新列。但是,我的输出似乎忽略了我的组?
我的例子:
site = c("a", "b", "b", "d", "d", "d", "e", "f", "g")
distance = c("PA", "PA", "5", "PA", "20", "5", "5", "20", "PA")
df <- data.frame(site,
distance)
申请条件:
- 如果只有 PA by group -> PA
- 如果有 PA 和其他东西 -> 不清楚
- 如果有其他东西(不是 PA)-> 缓冲区
脚本:
df %>%
group_by(site) %>%
mutate(source = case_when(distance == "PA" ~ "PA",
any(c("PA") %in% distance) ~ "unclear",
TRUE ~ "buffer"))
我的示例似乎在行方面运行良好,但没有考虑到组?
site 组的预期输出:
site distance source
<fct> <fct> <chr>
1 a PA PA
2 b PA unclear # not PA
3 b 5 unclear
4 d PA unclear # not PA, as the group contains other values!
5 d 20 unclear
6 d 5 unclear
7 e 5 buffer
8 f 20 buffer
9 g PA PA
【问题讨论】: