¿Cómo extraer las primeras n filas por grupo?

Tengo una tabla de datosdt. Esta tabla de datos se ordena primero por columnadate (mi variable de agrupación), luego por columnaage:

library(data.table)
setkeyv(dt, c("date", "age")) # Sorts table first by column "date" then by "age"
> dt
         date age     name
1: 2000-01-01   3   Andrew
2: 2000-01-01   4      Ben
3: 2000-01-01   5  Charlie
4: 2000-01-02   6     Adam
5: 2000-01-02   7      Bob
6: 2000-01-02   8 Campbell

Mi pregunta es: me pregunto si es posible extraer las primeras 2 filas para cada fecha única. O expresado de manera más general:

Cómo extraer las primeras n filas dentro de cada grupo?

En este ejemplo, el resultado endt.f sería:

> dt.f = ???????? # function of dt to extract the first 2 rows per unique date
> dt.f
         date age   name
1: 2000-01-01   3 Andrew
2: 2000-01-01   4    Ben
3: 2000-01-02   6   Adam
4: 2000-01-02   7    Bob

PD. Aquí está el código para crear la tabla de datos antes mencionada:

install.packages("data.table")
library(data.table)
date <- c("2000-01-01","2000-01-01","2000-01-01",
    "2000-01-02","2000-01-02","2000-01-02")
age <- c(3,4,5,6,7,8)
name <- c("Andrew","Ben","Charlie","Adam","Bob","Campbell")
dt <- data.table(date, age, name)
setkeyv(dt,c("date","age")) # Sorts table first by column "date" then by "age"

Respuestas a la pregunta(2)

Su respuesta a la pregunta