我有一个数据框A,第一列作为第一列作为数字键。一个例子就是这样的
key feature_1 feature_2
101 1.1 1.2
102 1.3 1.2
101 1.2 1.3
.............................
现在我想为每个不同的键选择第一列值(键)出现超过5次的行,对于大尺寸A应该有效的命令是什么?
我认为它应该是这样的
subset(A, key %in% c(.... # please fill in here) ) ?
答案 0 :(得分:2)
这里有三个选项需要考虑,有一些样本数据可以测试它的效率。将阈值(这里我使用过" 6")更改为您真正想要的任何内容。
## Sample data
set.seed(1)
mydf <- data.frame(key = sample(10, 100, TRUE),
feature1 = runif(100), feature2 = runif(100))
ave
Len <- with(mydf, ave(key, key, FUN = length))
mydf[Len > 6, ]
.N
library(data.table)
DT <- data.table(mydf)
DT[, Len := .N, by = key]
DT[Len > 6]
n()
library(dplyr)
mydf %.%
group_by(key) %.%
mutate(Len = n()) %.%
filter(Len > 6)