根据两个标准删除某些观察结果

时间:2018-05-13 17:15:13

标签: dataframe

标记了相同日期和密钥的所有行。

#Data
 Key   Date   Value       ...other columns
 C    2000-04   0.55         name1     x1   <- 
 C    2000-04   0.60         name2     x2   <-
 C    2000-05   1.2
 A    2001-06   4
 A    2001-07   5
 A    2002-08   2

我是否有一种简单的方法可以删除这些观察结果而不是总结它们?

非常感谢! :)

2 个答案:

答案 0 :(得分:0)

只需使用duplicated两次,一次使用默认fromLast = FALSE,另一次使用fromLast = TRUE
然后,否定该结果索引。

inx <- duplicated(Data[c('Key', 'Date')]) | duplicated(Data[c('Key', 'Date')], fromLast = TRUE)

Data[!inx, ]
#  Key    Date Value
#3   C 2000-05   1.2
#4   A 2001-06   4.0
#5   A 2001-07   5.0
#6   A 2002-08   2.0

数据。

Data <-
structure(list(Key = structure(c(2L, 2L, 2L, 1L, 1L, 1L), .Label = c("A", 
"C"), class = "factor"), Date = structure(c(1L, 1L, 2L, 3L, 4L, 
5L), .Label = c("2000-04", "2000-05", "2001-06", "2001-07", "2002-08"
), class = "factor"), Value = c(0.55, 0.6, 1.2, 4, 5, 2)), class = "data.frame", row.names = c(NA, 
-6L))

答案 1 :(得分:0)

我不确定我是否理解正确。如果是,一个非常简单的答案是unique()函数。

首先,您需要有充分的理由去除这些重复。

Key  <- c("C", "C", "C", "A", "A", "A", "C", "C", "C")
Value <- c(1, 2, 1, 2, 1, 2, 1, 2, 1)
df <- data.frame(Key, Value)
unique(df)