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

如何保留R数据框中rn列重复出现次数大于1的对应记录

问题原因

你原来的代码存在两个核心错误:

  • rowSums(!is.na(mydf[-1])) 统计的是每行除第一列外非缺失值的个数,完全不是rn列每个值的出现频次,逻辑不符合你的需求
  • 第二行筛选时操作的对象是df,但你创建的数据集叫mydf,对象名不一致会直接报错

正确实现方法

方法1:基础R实现

# 统计每个rn值的出现频次
rn_freq <- table(mydf$rn)
# 筛选出出现次数大于1的rn对应的所有记录
mydf2 <- mydf[mydf$rn %in% names(rn_freq[rn_freq > 1]), ]

运行后保留的记录对应的rn为AAAA(出现4次)、CDSD(出现2次)、RRR(出现2次),共8条结果,符合预期。

方法2:dplyr包实现(语法更简洁)

library(dplyr)
mydf2 <- mydf %>%
  group_by(rn) %>%
  filter(n() > 1) %>%
  ungroup()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 21:06:01