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

如何使用R语言判断data.frame每行是否全为相同字符并筛选对应行

实现方法

你可以直接通过逐行判断非NA值的唯一值数量实现需求,以下是两种常用写法:

1. 基础R写法

首先构造你的示例数据:

df <- data.frame(
  V1 = c("a", "a", "b", "a"),
  V2 = c("a", "a", "b", "c"),
  V3 = c("b", "a", "b", "d"),
  V4 = c("a", NA, "b", NA),
  V5 = c("a", NA, NA, NA)
)

筛选符合要求的行:

res <- df[apply(df, 1, function(row) {
  # 剔除当前行的NA值
  valid_val <- na.omit(row)
  # 判断去重后是否只有1种值
  length(unique(valid_val)) == 1
}), ]

运行后res就是你要的只包含第2、3行的结果。

2. dplyr(tidyverse生态)写法

如果你习惯用tidyverse语法,可以用rowwise + c_across实现:

library(dplyr)

res <- df %>%
  rowwise() %>%
  filter(length(unique(na.omit(c_across(everything())))) == 1) %>%
  ungroup()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 21:27:02