You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在R中多条件跨多行过滤:筛选同时选‘否’与其他选项的参与者

解决多选问题的筛选需求

你的代码问题出在if_any的语法使用错误,正确写法需要把判断逻辑作为参数传入if_any函数,而非在外层单独加==1。以下是两种可行的修正方案:

方案一:使用if_any的正确语法

results <- survey_all %>% 
  filter(child_tasks_2___0 == 1 &
         if_any(child_tasks_2___1:child_tasks_2___4, ~ . == 1))

这里~ . == 1表示对child_tasks_2___1到child_tasks_2___4的每一列,判断其值是否等于1;if_any只要其中任意一列满足条件就返回TRUE。

方案二:使用rowSums统计其他选项的勾选数量

results <- survey_all %>% 
  filter(child_tasks_2___0 == 1 &
         rowSums(across(child_tasks_2___1:child_tasks_2___4), na.rm = TRUE) > 0)

这种方式通过rowSums计算每行中其他选项的总和,只要总和大于0,就说明至少勾选了一个其他选项。na.rm = TRUE用于处理可能存在的缺失值,避免计算出错。

针对你的示例数据,两种方案都会筛选出第1行和第4行的记录——这两行既勾选了“否”,又勾选了至少一个其他选项。

内容的提问来源于stack exchange,提问作者ph_researcher

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 09:41:31