我们可以使用rleid 来查找相同的组
library(data.table)
i1 <- setDT(df1)[, .I[1],rleid(var3)]$V1
df1[i1]
# var1 var2 var3
#@1: 565 P0049129/21 146
或者另一种选择是
library(dplyr)
df1 %>%
group_by(grp = cumsum(var3 != lag(var3, default = first(var3)))) %>%
slice(1) %>%
ungroup %>%
select(-grp)
# A tibble: 1 x 3
# var1 var2 var3
# <int> <chr> <int>
#1 565 P0049129/21 146
或者我们可以这样做。base R
grp <- with(rle(df$var3), rep(seq_along(values), lengths))
subset(df, !duplicated(grp))
数据
df <- structure(list(var1 = c(565L, 565L), var2 = c("P0049129/21",
"P0020151/04"), var3 = c(146L, 146L)), class = "data.frame", row.names = c(NA,
-2L))