Rのデータフレームから少数の行を削除する
例えば、↓こんなデータがあったとして、 # サンプルデータの作成 name <- c("Anne", "Bob", "Carl", "Dann", "Eric", "Fred") fruits <- c("orange", "apple", "orange", "durian", "orange", "apple") df <- data.frame(name, fruits) df # 中身を見てみる name fruits 1 Anne orange 2 Bob apple 3 Carl orange 4 Dann durian 5 Eric orange 6 Fred apple みんなの好きな果物のデータだとして、1人しかいないような少数派の行は除去したいと。この例だと、ダンのドリアンを取り除きたいと。 ddplyを使って度数をカウントし、新たに度数(count)の列として追加(transform)。 library(plyr) ddply(df, "fruits", transform, count=length(fruits)) name fruits count 1 Bob apple 2 2 Fred apple 2 3 Dann durian 1 4 Anne orange 3 5 Carl orange 3 6 Eric orange 3 で、このcount列を条件として、データフレームをフィルタすればいいかなと。 dd <- ddply(df, "fruits", transform, count=length(fruits)) dd[ dd$count > 1, ] # 少数派の行を削除 name fruits count 1 Bob apple ...