消除R中数据框列中除了最后重复的元素之外的所有元素

时间:2014-04-23 10:55:18

标签: r duplicates

我有一个像这样的数据框

    head(data)
      V1 V2 V3 V4    V5    V6      V7
1     a 1941 2 14 -73.90 38.60 US009239
2     b 1941 2 14 -74.00 36.90 US009239
3     c 1941 2 14 -74.00 35.40 US009239
4     a 1941 2 15 -74.00 34.00 US009239
5     d 1941 2 15 -74.00 32.60 US009239
6     f 1941 2 15 -73.80 31.70 US009239

我想要做的是消除对应于重复数据$ V1的行(最大数据$ V1重复数为2)。问题是,如果我做

newdata <- data[!duplicated(data$V1),]

它将保留第一个

 head(newdata)
      V1 V2 V3 V4    V5    V6      V7
1     a 1941 2 14 -73.90 38.60 US009239
2     b 1941 2 14 -74.00 36.90 US009239
3     c 1941 2 14 -74.00 35.40 US009239
5     d 1941 2 15 -74.00 32.60 US009239
6     f 1941 2 15 -73.80 31.70 US009239

虽然我想保留第二个

   head(newdata)
          V1 V2 V3 V4    V5    V6      V7
    2     b 1941 2 14 -74.00 36.90 US009239
    3     c 1941 2 14 -74.00 35.40 US009239
    4     a 1941 2 15 -74.00 34.00 US009239
    5     d 1941 2 15 -74.00 32.60 US009239
    6     f 1941 2 15 -73.80 31.70 US009239

任何帮助?

1 个答案:

答案 0 :(得分:2)

duplicated有一个fromLast参数,可以满足您的需求:

duplicated(c('a', 'b', 'c', 'a', 'd', 'f'), fromLast=TRUE)
## [1]  TRUE FALSE FALSE FALSE FALSE FALSE