I have the following dataframe
x <- data.frame(id = c(1:6),
a = c('a', 'b', 'b', 'a', 'a', 'c'),
b = rep(2, 6),
c = c(5, 4, 4, 5, 5, 2))
> x
id a b c
1 1 a 2 5
2 2 b 2 4
3 3 b 2 4
4 4 a 2 5
5 5 a 2 5
6 6 c 2 2
I want to end up with
id a b c
1 1 a 2 5
2 2 b 2 4
4 4 a 2 5
6 6 c 2 2
要求是,如果一行与前一行相同,但id
列除外,则将该行删除。如果它与上面的某一列相同,但不是紧接着的前一列,则不希望将其删除。例如,id4与id1相同,但不会被删除,因为它不是紧接着id1。
任何帮助都将不胜感激。
nm1 <- setdiff(names(x), "id"); x[!c(FALSE, !rowSums(x[-1, nm1] != x[-nrow(x), nm1])),]
,请注意。 - akrun