我的数据集(df)看起来像,
ID Name Rating Score Ranking
1 abc 3 NA NA
1 abc 3 12 13
2 bcd 4 NA NA
2 bcd 4 19 20
我正在尝试删除使用
的重复项 df <- df[!duplicated(df[1:2]),]
给出,
ID Name Rating Score Ranking
1 abc 3 NA NA
2 bcd 4 NA NA
但是我想要,
ID Name Rating Score Ranking
1 abc 3 12 13
2 bcd 4 19 20
如何在同时删除重复项时避免包含NA的行,一些帮助会很棒,谢谢。
答案 0 :(得分:1)
首先,使用na.last = T
df<-df[with(df, order(ID, Name, Score, Ranking),na.last = T),]
然后使用fromLast = FALSE
参数删除重复的参数:
df <- df[!duplicated(df[1:2],fromLast = FALSE),]
答案 1 :(得分:1)
使用dplyr
df <- df %>% filter(!duplicated(.[,1:2], fromLast = T))
答案 2 :(得分:0)
您可以过滤掉您不想要的观察结果(),然后使用unique()函数:
a<-unique(c(which(df[,'Score']!="NA"), which(df[,'Ranking']!="NA")))
df2<-unique(df[a,])
> df2
ID Name Rating Score Ranking
2 1 abc 3 12 13
4 2 bcd 4 19 20