С помощью data.table
вы можете сделать
library(data.table)
setDT(df)
df[order(Date, desc(value))][, .SD[1:10], by = Date]
Изменить value
, чтобы соответствовать имени переменной, используемой для выбора, какое наблюдение следует сохранить в случае связей. Вы также можете сделать:
df[order(Date, desc(value))][, head(.SD,10), by = Date]