Agregado por niveles de factor, manteniendo otras variables en el marco de datos resultante

Estoy tratando de calcular los valores mínimos de una columna numérica para cada nivel de un factor, manteniendo valores de otro factor en el marco de datos resultante.

# dummy data
dat <- data.frame(
    code = c("HH11", "HH45", "JL03", "JL03", "JL03", "HH11"), 
    index = c("023434", "3377477", "3388595", "3377477", "1177777", "023434"), 
    value = c(24.1, 37.2, 78.9, 45.9, 20.0, 34.6)
    )

El resultado que quiero es el mínimo devalue para cada nivel decodemanteniendoindex en el marco de datos resultante.

# result I want:
#   code value    index
# 1 HH11  24.1   023434
# 2 HH45  37.2  3377477
# 3 JL03  20.0  1177777


# ddply attempt
library(plyr)
ddply(dat, ~ code, summarise, val = min(value))
#   code   val
# 1 HH11  24.1
# 2 HH45  37.2
# 3 JL03  20.0


# base R attempt
aggregate(value ~ code, dat, min)
#   code value
# 1 HH11  24.1
# 2 HH45  37.2
# 3 JL03  20.0

Respuestas a la pregunta(5)

Su respuesta a la pregunta