考虑如下数据框:
Key | Value
A | 1
A | 2
B | 2
C | 3
我想基于以下条件过滤此数据帧:只有密钥出现的行才能获得多次。
所以预期的输出是
Key | Value
A | 1
A | 2
在R中最简洁的方法是什么?寻找一种通用的解决方案,其中计数可以是> Ñ
答案 0 :(得分:2)
我们可以使用
library(dplyr)
df1 %>%
group_by(Key) %>%
filter(n()>1)
或base R
使用table
和subset
subset(df1, Key %in% names(which(table(Key) > 1)))
答案 1 :(得分:1)
使用data.table
df <- data.table(read.table(text = "Key Value
A 1
A 2
B 2
C 3", header = T))
df[, if(.N > 1) .SD, by = Key ]
Key Value
1: A 1
2: A 2