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

如何在R语言中统计向量中所有重复值的总数量?

统计向量中所有重复元素的总数

针对你的需求,这里有几种直接的解决方案:

方法一:基于table的基础R方法

先通过table()获取每个元素的出现频数,筛选出频数大于1的项,再对这些频数求和,就能得到所有重复元素的总数:

x <- c(1, 1, 4, 5, 4, 6, 1, 1)
tab <- table(x)
sum(tab[tab > 1])
#> [1] 6

方法二:使用dplyr的 tidyverse 风格

如果你习惯tidyverse的语法,可以通过分组计数后筛选统计行数:

library(dplyr)
x %>% 
  tibble(value = .) %>% 
  group_by(value) %>% 
  filter(n() > 1) %>% 
  nrow()
#> [1] 6

方法三:逻辑匹配法

先找出所有出现多次的数值,再统计原向量中属于这些数值的元素总数:

repeat_vals <- names(table(x)[table(x) > 1])
sum(x %in% repeat_vals)
#> [1] 6

补充说明你之前的错误原因:

  • sum(duplicated(x)):统计的是元素重复出现的次数(即每个元素除第一次出现外的重复次数),例子里1重复3次、4重复1次,3+1=4,所以得到4。
  • sum(table(x)-1):和上面逻辑类似,是每个重复数值的“额外出现次数”总和,同样得到4。
  • nrow(...):统计的是存在重复的数值的个数,例子里只有1和4两个数值重复,所以得到2。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 09:50:17