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
我試過以下,它的工作原理,但我不知道是否有這樣做的更清潔,更有效的方式?
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 /問題/ 23079248 /刪除重複的,行與 - ddply) –