Есть ли у вас год выпуска, вы могли бы следующее:
# Extract the cumulative maximum year
my_df$max_year <- cummax(my_df$year)
# Filter those rows which are at least as big as the max_year
my_df[my_df$year >= my_df$max_year, ]
# dato horiginal hour mday mon year wday wk max_year
# 8569 31.12.2016 64 20 31 11 116 6 53 116
# 8570 31.12.2016 70 21 31 11 116 6 53 116
# 8571 31.12.2016 71 22 31 11 116 6 53 116
# 8572 31.12.2016 71 23 31 11 116 6 53 116
# 8573 01.01.2017 78 0 1 0 117 0 53 117
Если wk постоянно увеличивается, вы также можете использовать это вместо года или извлечь год, как это сделал Ронак Шах в своем ответе.
Данные
my_df <-
structure(list(dato = c("31.12.2016", "31.12.2016", "31.12.2016", "31.12.2016", "01.01.2017", "30.10.2016", "30.10.2016", "30.10.2016", "30.10.2016", "30.10.2016", "30.10.2016"),
horiginal = c(64L, 70L, 71L, 71L, 78L, 46L, 38L, 35L, 36L, 46L, 38L),
hour = c(20L, 21L, 22L, 23L, 0L, 12L, 13L, 14L, 15L, 12L, 13L),
mday = c(31L, 31L, 31L, 31L, 1L, 30L, 30L, 30L, 30L, 30L, 30L),
mon = c(11L, 11L, 11L, 11L, 0L, 9L, 9L, 9L, 9L, 9L, 9L),
year = c(116L, 116L, 116L, 116L, 117L, 116L, 116L, 116L, 116L, 116L, 116L),
wday = c(6L, 6L, 6L, 6L, 0L, 0L, 0L, 0L, 0L, 0L, 0L),
wk = c(53L, 53L, 53L, 53L, 53L, 44L, 44L, 44L, 44L, 44L, 44L)),
class = "data.frame", row.names = c("8569", "8570", "8571", "8572", "8573", "8574", "8575", "8576", "8577", "8578", "8579"))