df <- data.frame(id = c(1, 1, 1, 2, 2),
gender = c("Female", "Female", "Male", "Female", "Male"),
variant = c("a", "b", "c", "d", "e"))
> df
id gender variant
1 1 Female a
2 1 Female b
3 1 Male c
4 2 Female d
5 2 Male e
データセット内のgender
列に従って、data.frameの重複行を削除したいとします。私は同じ質問があることを知っている(here)が、ここでの違いは、各サブセットが一意のid
によって定義されているデータセットの各サブセット内で重複する行を削除したいということです。R:列単位で行を削除する方法
私の望ましい結果がこれです:私は次のことを試してみたし、それが動作しますが、これを行うための、よりクリーンで効率的な方法があります場合、私は思ったんだけど
id gender variant
1 1 Female a
3 1 Male c
4 2 Female d
5 2 Male e
?以下のようにsubset
を使用してこれを行うの
out = list()
for(i in 1:2){
df2 <- subset(df, id == i)
out[[i]] <- df2[!duplicated(df2$gender), ]
}
do.call(rbind.data.frame, out)
[dplyrを使用して重複する行を削除する](https://stackoverflow.com/questions/22959635/remove-duplicated-rows-using-dplyr)または[ddplyで重複する行を削除する](https:// stackoverflow .com/questions/23079248/removal-duplicate-rows-with-ddply) –