Reemplazar los valores duplicados, excepto 1 fila en el marco de datos R

¿Cómo puedo reemplazar los valores duplicados de una columna específica del marco de datos R a NA (excepto la primera fila) según la ID? Para dar un ejemplo:

x <- data.frame(id=c("p1","p1","p1","p2","p2"),date=c("d1","d1","d1","d2","d2"))

y debería resultar en lo siguiente:

x2 <- data.frame(id=c("p1","p1","p1","p2","p2"),date=c("d1","NA","NA","d2","NA"))

Tengo que mantener la estructura de datos de varias filas por ID, simplemente no quiero que los valores de fecha se repitan sino una vez.

Gracias

Respuestas a la pregunta(4)

Su respuesta a la pregunta