Nach Faktorstufen aggregieren, wobei andere Variablen im resultierenden Datenrahmen erhalten bleiben

Ich versuche, die Mindestwerte einer numerischen Spalte für jede Ebene eines Faktors zu berechnen, während die Werte eines anderen Faktors im resultierenden Datenrahmen beibehalten werden.

# 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)
    )

Das gewünschte Ergebnis ist das Minimum vonvalue für jedes Level voncode, haltenindex im resultierenden Datenrahmen.

# 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

Antworten auf die Frage(5)

Ihre Antwort auf die Frage