検討のための別のアプローチを次に示します。
mydf <- data.frame(fac = c("a", "a", "b", "c", "d", "d", "e"),
dat1 = rnorm(7), dat2 = rnorm(7), dat3 = rnorm(7))
library("plyr")
cts <- count(mydf, vars = "fac")
keep <- as.character(subset(cts, freq > 1)$fac)
keep2 <- mydf$fac %in% keep
mydf2 <- mydf[keep2,]
変換するもの:
fac dat1 dat2 dat3
1 a 0.83565861 0.2293744 -1.2932864
2 a -0.05509087 0.1995655 -1.7961443
3 b -0.82794260 1.6314641 -0.3622872
4 c 0.13907037 -0.4560306 -0.3751849
5 d -0.30057042 0.8347340 0.4798789
6 d -1.15576099 -0.5945094 -0.3124572
7 e 1.17671034 0.1453544 -2.6906382
に:
fac dat1 dat2 dat3
1 a 0.83565861 0.2293744 -1.2932864
2 a -0.05509087 0.1995655 -1.7961443
5 d -0.30057042 0.8347340 0.4798789
6 d -1.15576099 -0.5945094 -0.3124572
ワンライナーを使用している可能性があると思いましたがduplicated
、この場合に必要なものがまったく返されません。