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

在R语言中筛选仅含F或NA的多列数据框行

解决方案:筛选仅含F或NA的行

示例数据构造

先还原测试数据,方便验证:

selected_df <- data.frame(
  col1 = c("A", "F", "F", "F", "A", "F"),
  col2 = c("B", "D", "F", NA, "D", "F"),
  col3 = c("F", "E", NA, NA, "C", "F"),
  col4 = c("C", "A", NA, NA, "A", "F"),
  length = c(15, 12, 3, 8, 11, 10),
  stringsAsFactors = FALSE
)

Base R 实现

你的原代码要求col1-col4全为F,因此漏掉了含NA的行。正确逻辑是检查每一行的col1-col4元素仅为F或NA,可以用apply逐行验证:

selected_new <- selected_df[
  apply(selected_df[, c("col1", "col2", "col3", "col4")], 1, 
        function(x) all(x %in% c("F", NA))), 
  ]

dplyr 实现(tidyverse 风格)

如果习惯用tidyverse工具,用rowwise()结合c_across()更直观:

library(dplyr)

selected_new <- selected_df %>%
  rowwise() %>%
  filter(all(c_across(col1:col4) %in% c("F", NA))) %>%
  ungroup()

结果说明

两种方法都会得到你需要的第3、4、6行:

col1 col2 col3 col4 length
3    F    F <NA> <NA>      3
4    F <NA> <NA> <NA>      8
6    F    F    F    F     10

内容的提问来源于stack exchange,提问作者Melanie A Kool

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 10:13:16