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 decode
manteniendoindex
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