从R中的数据框中提取原始和重复的结果

时间:2014-01-26 04:59:57

标签: r duplicates

我使用重复结果来估算化学分析的测量不确定度。当我从实验室数据库中提取数据时,它主要由单个结果组成,但有些样本经过两次测试,有两次超过两次(我见过12次)。我想丢弃所有单个分析,只保留重复的结果,但包括原始结果。

样品由重复样品共有的样品编号识别。

我可以使用duplicated()删除重复项,但是如何保留第一个结果呢?

感谢。

1 个答案:

答案 0 :(得分:3)

> dat <- data.frame(
    id = sample(1:5, 10, replace = TRUE),
    x = rnorm(10)
    )

> dat
##    id          x
## 1   1  0.7060512
## 2   4  0.6804117
## 3   2  0.2395902
## 4   2  1.5352574
## 5   1  0.2376593
## 6   4  0.8019506
## 7   1 -1.0506505
## 8   5  1.0554555
## 9   3  0.3637685
## 10  5 -0.8404215
> dat[duplicated(dat$id) | duplicated(dat$id, fromLast = TRUE),]
##    id          x
## 1   1  0.7060512
## 2   4  0.6804117
## 3   2  0.2395902
## 4   2  1.5352574
## 5   1  0.2376593
## 6   4  0.8019506
## 7   1 -1.0506505
## 8   5  1.0554555
## 10  5 -0.8404215