Diesen Code:Dplyr: Count Zeile mit der Bedingung pro Gruppe
Group <- rep(c("A", "B", "C"), each = 3)
Days <- c(21,21,19,18,21,21,11,21,19)
State <- c("OK", "NOK", "OK", "OK", "NOK", "OK", "OK", "OK", "NOK")
data <- data.frame(Group = Group, Days = Days, State = State)
diesen Datenrahmen erstellen.
> data
Group Days State
1 A 21 OK
2 A 21 NOK
3 A 19 OK
4 B 18 OK
5 B 21 OK
6 B 21 OK
7 C 11 NOK
8 C 21 OK
9 C 19 NOK
ich oft group_by
und summarizes
von dplyr
verwenden Sie Parameter von Gruppen erhalten (zB A , B, C). Aber ich konnte keinen einfachen Weg finden, um die Menge OKs und NOKs pro Gruppe zu bekommen (zB Prozentsatz NOK). Das Ergebnis würde ich erwarten:
> result
Group %NOK
1 A 33.3
2 B 0
3 C 66.6
In einem weiteren Schritt möchte ich Anteile mit zusätzlichen Bedingungen zählen. Zum Beispiel: Zählen Sie die Anzahl der NOKs, wobei Tage für jede Gruppe> 20 sind. Meine wirklich einfache Lösung wäre:
data %>% group_by(Group) %>% nrow(filter(Days < 20, State == "NOK"))/n() * 100
aber es wäre schön, wenn Sie meinen, eine Lösung geben könnte, dass tatsächlich funktioniert;)
perfekt funktioniert, vielen Dank für die schnelle Antwort mit – WitheShadow