Extrahieren Sie die Zeile, die dem Mindestwert einer Variablen entspricht, nach Gruppe

Ich möchte (1) Daten nach einer Variablen gruppieren (State), (2) innerhalb jeder Gruppe die Zeile mit dem Mindestwert einer anderen Variablen finden (Employees) und (3) extrahieren die gesamte Zeile.

(1) und (2) sind einfache Einzeiler, und ich denke, (3) sollte es auch sein, aber ich kann es nicht verstehen.

Hier ist ein Beispieldatensatz:

> data
  State Company Employees
1    AK       A        82
2    AK       B       104
3    AK       C        37
4    AK       D        24
5    RI       E        19
6    RI       F       118
7    RI       G        88
8    RI       H        42

data <- structure(list(State = structure(c(1L, 1L, 1L, 1L, 2L, 2L, 2L, 
        2L), .Label = c("AK", "RI"), c,lass = "factor"), Company = structure(1:8, .Label = c("A", 
        "B", "C", "D", "E", "F", "G", "H"), class = "factor"), Employees = c(82L, 
        104L, 37L, 24L, 19L, 118L, 88L, 42L)), .Names = c("State", "Company", 
        "Employees"), class = "data.frame", row.names = c(NA, -8L))

Berechnungmin von Gruppe ist einfach, mitaggregate:

> aggregate(Employees ~ State, data, function(x) min(x))
  State Employees
1    AK        24
2    RI        19

...oderdata.table:

> library(data.table)
> DT <- data.table(data)
> DT[ , list(Employees = min(Employees)), by = State]
   State Employees
1:    AK        24
2:    RI        19

Aber wie extrahiere ich die gesamte Zeile, die diesen entspricht?min Werte, d. h. auch einschließlichCompany im Ergebnis?

Antworten auf die Frage(5)

Ihre Antwort auf die Frage