split
Year
на ID
, а затем оставить только те подгруппы, которые имеют более одной уникальной Year
list1 = lapply(split(df1$Year, df1$ID), unique)
list1 = list1[lengths(list1) > 1]
data.frame(ID = names(list1), count = lengths(list1))
# ID count
#4567 4567 2
#DATA
df1 = structure(list(Year = c(2005L, 2005L, 2005L, 2005L, 2006L, 2006L),
Item = c("a", "b", "a", "b", "a", "a"), ID = c(1234L, 1234L, 4567L, 4567L, 4567L, 7894L)),
class = "data.frame",
row.names = c(NA, -6L))