2017-07-19 4 views
1

Ich habe ein kleines Problem über die obige Frage. Um genau zu sein, habe ich zwei Datumsvariablen in R mit Anfangs- und Enddatum sagen: ein Fall beginnt in 2000-1-1 endet in 2000-4-1.zusammenfassen einen statistischen Wert basierend auf Datum in R

Ich habe auch eine Variable, die ein medizinisches Ergebnis innerhalb dieser Daten aufzeichnet, sagen in 2000-1-1 das Ergebnis ist 20; und in 2000-2-1/2000-3-1/2000-4-1 sind die Ergebnisse 30,30 und 50.

Ich möchte den Mittelwert dieser Variablen basierend auf jeder Dauer von Daten berechnen, in in unseren Fällen wird der Mittelwert 32,5 (130/4) betragen.

Wie kann ich es in R Studio erreichen? Danke im Voraus.

Ethan

Antwort

0

Klingt wie Sie die Aggregatfunktion zur Berechnung der Summen Ihrer Werte für jedes Quartal verwenden müssen.

EDITED Sieht aus, als würden Sie keine Quartale des Jahres als Zeitintervall verwenden, aber Trimester? so ist jan-apr eine kategorie, may-aug ist eine andere, und sep-dec ist die letzte ??

Wenn das der Fall ist, können Sie lubridate :: viertel() nicht verwenden, also müssen Sie Ihre eigene vektorisierte Funktion schreiben, die sich mit diesem Trimester befasst und jedem eine Zahl zuweist. Dies kann leicht erfolgen durch:

trimester <- function(date){ 
    if(lubridate::month(date) >= 1 & lubridate::month(date) <= 4) return(1) 
    if(lubridate::month(date) >= 5 & lubridate::month(date) <= 8) return(2) 
    if(lubridate::month(date) >= 9 & lubridate::month(date) <= 12) return(3)} 

VectorizedTrimester <- Vectorize(trimester)

dann Ihre eigentliche Aggregation kann erreicht werden durch:

aggregate(formula = OrderValue ~ VectorizedTrimester(OrderDate), FUN = mean)

Das ist die beste, die ich mit Ihnen geben kann, was Sie zur Verfügung gestellt, Verwenden Sie beim nächsten Mal die Variablennamen und den tatsächlichen Code in Ihrer Frage, um eine bessere Antwort zu erhalten.

Verwandte Themen