Ranking im Paneldatensatz

Methoden der Zeitreihenanalyse

Moderator: schubbiaschwilli

Antworten
R-Noop
Beiträge: 1
Registriert: Do Mai 23, 2019 9:17 am

Ranking im Paneldatensatz

Beitrag von R-Noop »

Liebe Forenmitglieder,

ich würde gerne in meinem Paneldatensatz den Rang einer Variablen ausgeben. Allerdings soll das Ranking nicht über das gesamte Sample laufen, sondern sich jeweils nur auf einen bestimmten Zeitpunkt t beziehen. Beispielsweise würde ich gerne für Unternehmen A zum Zeitpunkt 1988 den Rang des Gewinns ermitteln (absteigend -> hoher Gewinn = hohe Rangzahl). Im Beispiel wäre der Rang 1, da A 1988 den kleinsten Gewinn erzielt hat.

U Jahr Gewinn Rang
A 1988 22 1
A 1989 30
A 1990 12
B 1988 34
B 1989 19
C 1988 32
C 1989 7
C 1990 14
C 1991 20

Der Vektor "Rang" wurde bereits im Dataframe vordefiniert. Ich möchte gerne eine Scheife wegen der Laufzeit vermeiden. Mein bisher beste Idee wäre:

Code: Alles auswählen

daten$Rang <- rank(subset(daten$Gewinn, daten$Jahr))
Error: muss boolesch sein!

Für eure Hilfe wäre ich unendlich dankbar. Ich hoffe jemand findet die Zeit.

Beste Grüße

Noop
jogo
Beiträge: 2085
Registriert: Fr Okt 07, 2016 8:25 am

Re: Ranking im Paneldatensatz

Beitrag von jogo »

Hallo Noop,

willkommen im Forum!
Die Funktion ave() solltest Du Dir unbedingt ansehen.

Code: Alles auswählen

daten$Rang <- ave(daten$Gewinn, daten$Jahr, FUN=rank)

Vielleicht möchtest Du auch gleich die "Flucht nach vorne" antreten und data.table einsetzen;
dies wäre insbesondere dann eine Überlegung wert, falls die Dataframes etwas größer sind/werden.
Mit data.table würde das so aussehen (wenn daten ein data.table-Objekt ist):

Code: Alles auswählen

daten[, Rang:=rank(Gewinn), Jahr]
Gruß, Jörg
Benutzeravatar
student
Beiträge: 674
Registriert: Fr Okt 07, 2016 9:52 am

Re: Ranking im Paneldatensatz

Beitrag von student »

Hallo Noop,

die Funktionen ave oder doBy sind neben dem data.table sicher eine gute Idee....
Viele Grüße,
Student
-----------------------------------------------------------------------------------------------------------------------
faes.de, Datenanalyse mit R & das Ad-Oculos-Projekt
Das Ad-Oculos-Projekt auf YouTube

Habe Mut, dich deines eigenen Verstandes zu bedienen! (Kant)
Antworten