Daten in Quantil anordnen und nummerieren

Wie rufe ich R-Funktionen auf, wie selektiere ich Daten, ich weiß nicht genau ....

Moderatoren: EDi, jogo

Antworten
smll1994
Beiträge: 3
Registriert: Do Sep 03, 2020 3:05 pm

Daten in Quantil anordnen und nummerieren

Beitrag von smll1994 »

Hallo zusammen,

im Rahmen meiner Masterarbeit muss ich eine statistische Auswertung von Daten vornehmen. Ich habe bisher alle sechs meiner Variablen berechnet. Diese müssen nun in ein Scoring Wert umgerechnet und ein Gesamtscore ermittelt werden.

Dazu sollen alle meine Variablen jeweils in der Jahres-Branchen Gruppe im Quantil angeordnet werden. Die Unternehmen, die sich im 1. Quantil befinden sollen nun für diese Variable einen Score von 1, die im zweiten Quantil einen Score von 2 usw. zugeordnet bekommen.

Hier ein Ausschnitt meiner Daten:

Code: Alles auswählen

A tibble: 6 x 10
ISIN Year CURRENCY SIC2 FnE5 Marketing5 Growth5 Op_Eff5 Tech_Eff5 Org_Eff5
<chr> <chr> <chr> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
1 AN8068571086 2009 U$ Mining 0.0326 0.0593 0.161 0.00357 1.99 10281.
2 AN8068571086 2010 U$ Mining 0.0321 0.0577 0.153 0.00352 1.85 14536.
3 AN8068571086 2011 U$ Mining 0.0313 0.0538 0.173 0.00336 1.78 16477.
4 AN8068571086 2012 U$ Mining 0.0306 0.0499 0.144 0.00324 1.76 17700.
5 AN8068571086 2013 U$ Mining 0.0296 0.0457 0.130 0.00313 1.73 18102.
6 AN8068571086 2014 U$ Mining 0.0276 0.0401 0.173 0.00294 1.73 5941.
> 
Sowohl ISIN, Jahr und SIC unterscheiden sich. Ich möchte zum Beispiel im ersten Schritt für FnE5 die Werte aufsteigend innerhalb des Jahres 2009 und der Industrie Mining sortiert haben und die Werte 1-5 je nach Quintil den Unternehmen (ISIN) in einer separaten Spalte des Dataframes hinzufügen. Dieses soll anschließend für jede Jahres-SIC Kombination und jede der 6 Variablen durchgeführt werden. Die Jahre und die Industrien werden untereinander aufgelistet.

Vielen Dank für die Hilfe im Vorau und liebe Grüße :)
jogo
Beiträge: 2086
Registriert: Fr Okt 07, 2016 8:25 am

Re: Daten in Quantil anordnen und nummerieren

Beitrag von jogo »

Hallo smil,

willkommen im Forum!
Meinst Du etwa Quartile statt Quantile?
Solltest Du doch Quantile meinen, dann läuft es einfach auf rank() hinaus.

Code: Alles auswählen

set.seed(42)
x <- rnorm(5)
data.frame(x, r=rank(x))
Gruß, Jörg
smll1994
Beiträge: 3
Registriert: Do Sep 03, 2020 3:05 pm

Re: Daten in Quantil anordnen und nummerieren

Beitrag von smll1994 »

Hallo Jörg,

Tatsächlich habe ich mich vertippt und es sollte Quintil heißen, sprich die jeweilige Jahres-Branchen Gruppe soll der Größe nach(kleinster Wert zuerst) in 5 Teile zerlegt werden und das erste Fünftel soll mit einem Wert von eins beziffert werden, das zweite Fünftel mit zwei und so weiter. Mit Start der nächsten Jahr-Branchen Kombination soll dann das selbe wieder erfolgen. Die Daten stehen allerdings alle untereinander und jede Kombination muss separat unter Berücksichtigung des Jahres und der Branche betrachtet werden. Trifft hier auch die rank() Funktion zu?

Danke für die Hilfe :)
jogo
Beiträge: 2086
Registriert: Fr Okt 07, 2016 8:25 am

Re: Daten in Quantil anordnen und nummerieren

Beitrag von jogo »

Hallo smil,

für Quintile ist noch die Funktion cut() nützlich:

Code: Alles auswählen

set.seed(42)
x <- rnorm(20)
data.frame(x, q5=cut(rank(x), breaks=5, labels=1:5))
Du möchtest den score wahrscheinlich später weiter verrechnen:

Code: Alles auswählen

str(data.frame(x, q5=as.integer(as.character(cut(rank(x), breaks=5, labels=1:5)))))
Für die Gruppierung der Daten kannst Du ave() verwenden, etwa so:

Code: Alles auswählen

q5 <- function(x) as.integer(as.character(cut(rank(x), breaks=5, labels=1:5)))
with(DeinDataframe, ave(FnE5, Year, SIC2, FUN=q5))
Das Ergebnis möglichst in den Dataframe eintragen.

Aber vielleicht willst Du den originalen Dataframe splitten mit Hilfe der Gruppierungsvariablen - dann kann das Vorgehen auch anders aussehen.

Gruß, Jörg
Antworten