次のようなデータフレームがあります。
df <- data.frame(Site=rep(paste0('site', 1:5), 50),
Month=sample(1:12, 50, replace=T),
Count=(sample(1:1000, 50, replace=T)))
すべてのサイトで、カウントが常に最大月間カウントの5%未満であるサイトを削除したいと思います。
すべてのサイトの最大月間カウントは次のとおりです。
library(plyr)
ddply(df, .(Month), summarise, Max.Count=max(Count))
1のカウントがsite5に割り当てられている場合、そのカウントは常にすべてのサイトの最大月間カウントの5%未満です。したがって、site5を削除したいと思います。
df$Count[df$Site=='site5'] <- 1
ただし、site2に新しい値を割り当てた後、そのカウントの一部は最大月間カウントの5%未満であり、その他は5%を超えています。したがって、site2を削除したくありません。
df$Count[df$Site=='site2'] <- ceiling(seq(1, 1000, length.out=20))
データフレームをサブセット化して、カウントが常に最大月間カウントの5%未満であるサイトを削除するにはどうすればよいですか?質問が不明な場合はお知らせください。修正します。