提问人:Simon Harmel 提问时间:10/30/2023 更新时间:10/30/2023 访问量:42
如何在 R 中执行嵌套子集
How to do nested subsetting in R
问:
在我的下文中,我正在尝试同时包含 和 并且具有 .DATA
filter
District
Status
Monitor
Never
No
Answer
然后,在每一行中,我只想看到 where is 或 and is 的行。District
filter
Status
Monitor
Never
Answer
No
所需的输出应仅为第 1 行、第 3 行、第 10 行和最后一行(见下文)。这可能吗?
我尝试了以下方法(没有成功):
library(dplyr)
group_by(DATA, District) %>%
filter(Status %in% c("Monitor","Never") & Answer == "No") %>%
ungroup()
DATA <- read.table(h=T, text="
District Status Answer
A Monitor No #--> Filter this row
A Never Yes
A Never No #--> Filter this row
A Ever No
B Never Yes
B Never No
B Never No
C Former No
C Never No
D Never No #--> Filter this row
D Monitor Yes
D Monitor No #--> Filter this row
")
答:
7赞
r2evans
10/30/2023
#1
对于“包括 Monitor 和 Never”,我们需要先使用,然后我们可以继续使用过滤器的其余部分。all(.)
group_by(DATA, District) %>%
filter(
all(c("Monitor","Never") %in% Status),
Status %in% c("Monitor", "Never"),
Answer == "No"
) %>%
ungroup()
# # A tibble: 4 × 3
# District Status Answer
# <chr> <chr> <chr>
# 1 A Monitor No
# 2 A Never No
# 3 D Never No
# 4 D Monitor No
评论