【发布时间】:2020-10-22 08:10:36
【问题描述】:
我正在尝试过滤数据集以仅包含在所有条件下(因子级别)都有数据的受试者。
我尝试通过计算每个主题的级别数来进行过滤,但这不起作用。
library(tidyverse)
Data <- data.frame(
Subject = factor(c(rep(1, 3),
rep(2, 3),
rep(3, 1))),
Condition = factor(c("A", "B", "C",
"A", "B", "C",
"A")),
Val = c(1, 0, 1,
0, 0, 1,
1)
)
Data %>%
semi_join(
.,
Data %>%
group_by(Subject) %>%
summarize(Num_Cond = length(levels(Condition))) %>%
filter(Num_Cond == 3),
by = "Subject"
)
此尝试产生:
Subject Condition Val
1 1 A 1
2 1 B 0
3 1 C 1
4 2 A 0
5 2 B 0
6 2 C 1
7 3 A 1
期望的输出:
Subject Condition Val
1 1 A 1
2 1 B 0
3 1 C 1
4 2 A 0
5 2 B 0
6 2 C 1
我想过滤掉主题 3,因为他们只有一个条件的数据。
是否有针对此问题的 dplyr/tidyverse 方法?
【问题讨论】: