Конечно. Нечто подобное должно сработать:
# CREATE A REPRODUCIBLE EXAMPLE!
df <- data.frame(year = c("2001", "2003", "2001", "2003", "2003"),
pixel = c("a", "b", "a", "b", "a"),
cumsum = c(99, 99, 98, 99, 99),
numbercomps=1:5)
df
# year pixel cumsum numbercomps
# 1 2001 a 99 1
# 2 2003 b 99 2
# 3 2001 a 98 3
# 4 2003 b 99 4
# 5 2003 a 99 5
# EXTRACT THE SUBSET YOU'D LIKE.
res <- subset(df, cumsum>=99)
res <- subset(res,
subset = !duplicated(res[c("year", "pixel")]),
select = c("pixel", "year", "numbercomps"))
# pixel year numbercomps
# 1 a 2001 1
# 2 b 2003 2
# 5 a 2003 5
РЕДАКТИРОВАТЬ Кроме того, для тех, кто заинтересован в data.table
, есть это:
library(data.table)
dt <- data.table(df, key="pixel, year")
dt[cumsum>=99, .SD[1], by=key(dt)]