数据框包含由重复值组成的列。 我们如何识别具有重复值的 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/