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) –