Skalierung relativ zu einem Wert in jeder Gruppe (über dplyr)

8

Ich habe eine Reihe von Zeitreihen, und ich möchte jede von ihnen relativ zu ihrem Wert in einem bestimmten Intervall skalieren. Auf diese Weise wird jede Serie zu diesem Zeitpunkt bei 1,0 stehen und sich proportional verändern.

Ich kann nicht herausfinden, wie man das mit dplyr macht.

Hier ist ein Arbeitsbeispiel mit einer for-Schleife:

%Vor%

Bearbeiten : Die Frage wurde so geändert, dass der Basiszeitpunkt nicht indexierbar ist. Manchmal ist die "Zeit" -Spalte tatsächlich ein Faktor, der nicht unbedingt ordinal ist.

    
sharoz 25.11.2014, 01:42
quelle

3 Antworten

6

Diese Lösung ist @thelatemail sehr ähnlich, aber ich denke, sie ist ausreichend unterschiedlich genug, um eine eigene Antwort zu verdienen, weil sie den Index auf der Grundlage einer Bedingung auswählt:

%Vor%

(Die Datenausgabe wurde abgeschnitten. Um diese Ergebnisse zu replizieren, set.seed(123) beim Erstellen von data .)

    
oshun 10.04.2016, 05:42
quelle
6

Verwenden Sie first in dplyr, um sicherzustellen, dass Sie order_by

verwenden %Vor%     
Hugh 25.11.2014 02:05
quelle
2

In etwa so:

%Vor%

Ergebnis:

%Vor%     
thelatemail 25.11.2014 01:55
quelle

Tags und Links