r语言 - 我如何过滤没有完成两份问卷的参与者?



在计算我的两份问卷的N时,它们是不同的。我想过滤掉那些已经完成了两份问卷并且没有跳过第二份问卷的参与者。

quest_distinct <-  quest_data %>%
group_by(user_id, q_id) %>%
filter(session_id == min(session_id), endtime == min(endtime)) %>%
filter(row_number() == 1) %>%
ungroup() %>%
filter(user_status %in% c("guest", "registered"))

这是到目前为止我用来过滤掉测试会话的代码。

对于dplyr,您可以使用group_byuser_id,并在quest_id(或q_id-根据上面的数据和代码的先前帖子不清楚)上使用n_distinct。这里假设quest_id是每个问卷的唯一值。n_distinct(quest_id)会给你独特问卷的数量。如果该值为2,则该用户拥有2个不同问卷的数据,您可以filter在输出中保留该用户的数据。如果您按照评论中的建议使用dput和您的示例数据,我们可能会提供额外的帮助并使用您的数据进行演示。

library(dplyr)
quest_data %>%
group_by(user_id) %>%
filter(n_distinct(quest_id) == 2)

相关内容

  • 没有找到相关文章