Unten ist ein Teil von etwas ähnlichem wie meine Daten-Set:Zählung Etiketten pro Seite und Übersichtstabelle in R erstellen
require(dplyr)
alldata
site date percent_rank Label
01A 2013-01-01 0.32 Normal
01B 2013-01-01 0.12 Low
01C 2013-01-01 0.76 High
02A 2013-01-01 0 N/A
02B 2013-01-01 0.16 Low
02C 2013-01-01 0.5 Normal
01A 2013-01-02 0.67 Normal
01B 2013-01-02 0.01 Low
01C 2013-01-02 0.92 High
I zugeordnet jeweils ein Etikett PERCENT_RANK basierend auf dem Wert (0 bis 0,25 bis 0,75 zu 1 die drei Kategorien). Ich mag nun eine Übersichtstabelle in diesem Format produzieren:
site Low Normal High Missing
01A 32 47 92 194
01B 232 23 17 93
01C 82 265 12 6
wo jeder Standort eine Zählung der Vorkommen von niedrig, normal und hohen Werten für alle Termine mit dieser Site Label haben würde (es gibt einen für jeden Tag des Jahres) und N/A-Werte würden für die Spalte "Missing" gezählt werden.
Ich habe das versucht, folgende:
alldata <- %>% group_by(site) %>% mutate(length(Label == "Low"))
, die den Gesamtwert aller Datensätze zurückgibt, anstatt eine Anzahl von „Low“ pro Standort und
alldata <- %>% group_by(site) %>% mutate(length(which(Label == "Low")))
die mehrere einen Wert zurückgibt Tausend höher als die Gesamtzahl der Datensätze. Die Idee war, dass ich diese Funktion wiederholen würde, um vier neue Spalten mit vier separaten Mutationszeilen (eine für jede Kategorie) zu erstellen, und dies würde meine Übersichtstabelle erzeugen. Ich habe auch einige Variationen von Aggregat() versucht, obwohl die Funktionskomponente für mich weniger klar war für das, was ich vorhabe. Das scheint mir ziemlich einfach zu sein (und group_by hat mir bei der Berechnung des prozentualen Ranks und der zugehörigen Labels gut geholfen), aber ich konnte bis jetzt keine Lösung finden. Irgendwelche Tipps werden sehr geschätzt!
Es gibt eine 'count' Funktion im' dplyr' Paket. Vielleicht ist das hilfreich. – user2100721
Wenn Sie 'which' Länge verwenden, ist genug, aber mit logischen Vektor, gibt' sum' die Anzahl. – akrun