根据变量删除重复项

时间:2016-05-19 17:00:29

标签: r

我有三个变量患者,手臂和最佳

01 A CR 
02 A PD 
03 B PR 
04 B CR 
05 C SD 
06 C SD 
07 C PD 
01 A CD 
03 B PD 

我想删除患者和手臂中的重复项

patient   arm   bestres
1         A      CR 
2         A      PD 
3         B      PR 
4         B      CR 
5         C      SD 
6         C      SD 
7         C      PD

如何根据两个变量删除重复项

1 个答案:

答案 0 :(得分:0)

传递data.frame时,duplicated()对于完全复制先前行的行返回TRUE。因此,我们可以通过仅将目标列传递给它来实现您的要求:

df <- data.frame(patient=c(1L,2L,3L,4L,5L,6L,7L,1L,3L),arm=c('A','A','B','B','C','C','C','A','B'),bestres=c('CR','PD','PR','CR','SD','SD','PD','CD','PD'),stringsAsFactors=F);
df[!duplicated(df[,c('patient','arm')]),];
##   patient arm bestres
## 1       1   A      CR
## 2       2   A      PD
## 3       3   B      PR
## 4       4   B      CR
## 5       5   C      SD
## 6       6   C      SD
## 7       7   C      PD

请注意文档中的此警告:

  

数据框方法的工作原理是将由\ r分隔的行的字符表示粘贴在一起,因此如果数据框具有嵌入回车符的字符或不能可靠映射到字符的列,则可能不完美。