r - 如何识别 R 中具有重复值的列的名称

标签 r

数据框包含由重复值组成的列。 我们如何识别具有重复值的 colnames 及其计数。

数据集:

A  B  C
1  2  a
2  3  b
3  4  a
1  5  c

我需要这样的输出

具有重复值的列是 A(2) 和 C(2)

我试过 duplicated(),它返回一个向量。

最佳答案

我们可以使用sapply 来按列循环查找重复的 元素并对其进行sum

colSums(sapply(df, function(x) duplicated(x)|duplicated(x, fromLast = TRUE)))

#A B C 
#2 0 2 

如果您只需要非零列,您可以这样做

vals <- colSums(sapply(df, function(x) 
                duplicated(x)|duplicated(x, fromLast = TRUE)))
vals[vals!= 0]
#A C 
#2 2 

使用 dplyr 我们可以对 summarise_all 做同样的事情

library(dplyr)
df %>%
  summarise_all(~sum(duplicated(.) | duplicated(., fromLast = TRUE))) %>%
  select_if(~. != 0)

#  A C
#1 2 2

关于r - 如何识别 R 中具有重复值的列的名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56293315/

相关文章:

R使用ggplot在同一轴上绘制多列值

r - 将 R 对象传递给 Rust 程序需要哪些步骤?

r - 如果列采用特定值,则分配新变量

r - read.csv() 与 read_csv() 的客观优缺点是什么?

r - R中每小时分割时间序列数据

r - 使用计数将长格式转换为宽格式的简单方法

python - 枚举所有可能的二人组星座

r - 按元素名称组合/合并列表

R 如果滞后条件匹配,则用 NA 填充新列

r - 错误 : Too many arguments: quarto-ext/grouped-tabsets