Subset erstellen

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

Moderatoren: EDi, jogo

Antworten
Zabel
Beiträge: 13
Registriert: Mo Okt 28, 2019 11:41 am

Subset erstellen

Beitrag von Zabel »

Hallo liebes Forum,

ich habe eine kurze Frage und wundere mich, weshalb ich kein Subset erstellen kann. (Problem sitzt wohl vor dem Bildschirm) Ist nur ein wirklich kleines Problem, welches sicher schnell behoben ist: ich möchte ein Subset erstellen, indem die Spaltennamen eines df den Werten eines anderen df entsprechen sollen. Dafür erhalte ich bei

Code: Alles auswählen

data_all<-subset(data_all,`SecId`== colnames(returns_fee10))
folgendes:
In SecId == colnames(returns_fee10) : Länge des längeren Objektes ist kein Vielfaches der Länge des kürzeren Objektes
.

Die str sagt folgendes:
str(colnames(returns_fee10)) chr [1:93] "FOUSA05KV4" "FOUSA05KV1" "FOUSA06A5L" "FOUSA06A5J" "FOUSA05KXC" "FHUSA04GRM" "FHUSA04GRN" ...
str(data_all)
tibble [980 x 10] (S3: tbl_df/tbl/data.frame)
$ SecId : chr [1:980] "FOUSA06MUZ" "FOUSA06HYO" "FHUSA04GHB" "F00000IS0P" ...
$ Management Fee : chr [1:980] "1.5000" "1.5000" "1.5000" "2.000" ...
$ Max Management Fee : chr [1:980] "1.5000" NA NA NA ...
$ Performance Fee : chr [1:980] "20.000" "20.000" "20.000" "20.000" ...
$ Performance Fee Note: chr [1:980] NA NA NA NA ...
$ Redemption Fee : chr [1:980] NA "5.000" ".000" ".000" ...
$ Hurdle Rate : chr [1:980] "-NA" "-NA" "10.000" "-NA" ...
$ High Watermark : chr [1:980] "Yes" "Yes" "Yes" "Yes" ...
$ Fund Size Date : num [1:980] 31072020 NA NA NA NA ...
$ Fund Size USD : chr [1:980] "460900000.000" NA NA NA ...
Vielen Dank im voraus! LG
Benutzeravatar
EDi
Beiträge: 1599
Registriert: Sa Okt 08, 2016 3:39 pm

Re: Subset erstellen

Beitrag von EDi »

Ich vermute du möchtest den '%in%' Operator anstatt '==' verwenden...
Bitte immer ein reproduzierbares Minimalbeispiel angeben. Meinungen gehören mir und geben nicht die meines Brötchengebers wieder.

Dieser Beitrag ist lizensiert unter einer CC BY 4.0 Lizenz
Bild.
Zabel
Beiträge: 13
Registriert: Mo Okt 28, 2019 11:41 am

Re: Subset erstellen

Beitrag von Zabel »

Traum. MVP
Athomas
Beiträge: 768
Registriert: Mo Feb 26, 2018 8:19 pm

Re: Subset erstellen

Beitrag von Athomas »

Und: den Namen der Variablen in Hochkommata zu setzen - funktioniert tatsächlich?
Zabel
Beiträge: 13
Registriert: Mo Okt 28, 2019 11:41 am

Re: Subset erstellen

Beitrag von Zabel »

Code: Alles auswählen

data_all<-subset(data_all,`SecId`%in% rbind(colnames(returns_fee10),colnames(returns_fee20)))
läuft wunderbar
Benutzeravatar
EDi
Beiträge: 1599
Registriert: Sa Okt 08, 2016 3:39 pm

Re: Subset erstellen

Beitrag von EDi »

wieso rbind() und nicht c() ?

Mich erstaunt dass das funktioniert...
Bitte immer ein reproduzierbares Minimalbeispiel angeben. Meinungen gehören mir und geben nicht die meines Brötchengebers wieder.

Dieser Beitrag ist lizensiert unter einer CC BY 4.0 Lizenz
Bild.
Athomas
Beiträge: 768
Registriert: Mo Feb 26, 2018 8:19 pm

Re: Subset erstellen

Beitrag von Athomas »

Das, was ich für ein Hochkomma gehalten habe, ist wohl ein Accent Grave (Olala :lol: ) - und ich nehme an, der wird bei einem Namen einfach ingoriert!

Das rbind erzeugt halt eine (n x 1)-Matrix anstelle eines Vektors - ist ja fast dasselbe :) - zumindest die Inhalte sind identisch...

Wenn Du weiter so programmierst, wirst Du wohl irgendwann Fehler erzeugen, die Dich verzweifeln lassen!
Benutzeravatar
EDi
Beiträge: 1599
Registriert: Sa Okt 08, 2016 3:39 pm

Re: Subset erstellen

Beitrag von EDi »

Accent Grave (Olala :lol: )
Ich nenn' die 'Backticks'...

Braucht man eigentlich nur wenn man syntaktisch invalide Namen hat: https://stat.ethz.ch/R-manual/R-devel/l ... names.html
Das rbind erzeugt halt eine (n x 1)-Matrix
Das wird eine n x 2 matrix und wenn die längen Unterschiedlich sind, wird noch lustiger:

Code: Alles auswählen

rbind(1:3, 4:10)
Und %in% macht daraus einen vektor? Oder subset macht dann einen Vektor?
Das sind mir zu viele Annahmen und Nebeneffekte! Würde dem Code nicht vertrauen, dass er macht was angedacht ist...
Wenn Du weiter so programmierst, wirst Du wohl irgendwann Fehler erzeugen, die Dich verzweifeln lassen!
Zustimmt. Man (auch Frau) kann ja jetzt schon nicht über die Funktionsweise der Zeile genau Schlüsse ziehen.
Bitte immer ein reproduzierbares Minimalbeispiel angeben. Meinungen gehören mir und geben nicht die meines Brötchengebers wieder.

Dieser Beitrag ist lizensiert unter einer CC BY 4.0 Lizenz
Bild.
Athomas
Beiträge: 768
Registriert: Mo Feb 26, 2018 8:19 pm

Re: Subset erstellen

Beitrag von Athomas »

Das Stichwort "backticks" ist ja Gold wert - damit kann man 1a kryptisch programmieren:

Code: Alles auswählen

> `  @  \n +-/ 3` <- 42
> `  @  \n +-/ 3`
[1] 42
Benutzeravatar
EDi
Beiträge: 1599
Registriert: Sa Okt 08, 2016 3:39 pm

Re: Subset erstellen

Beitrag von EDi »

Ja, man kann in R auch den Plus-Operator durch ein Minus tauschen...

Wenn man sich unbedingt selbst in den Rücken schießen will: R hält einen nicht auf...
Bitte immer ein reproduzierbares Minimalbeispiel angeben. Meinungen gehören mir und geben nicht die meines Brötchengebers wieder.

Dieser Beitrag ist lizensiert unter einer CC BY 4.0 Lizenz
Bild.
Antworten