Variable in 2 neue Variablen aufteilen

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

Moderatoren: EDi, jogo

delonge
Beiträge: 6
Registriert: Mo Jul 15, 2019 11:55 am

Variable in 2 neue Variablen aufteilen

Beitrag von delonge »

Hallo zusammen,
ich habe in meinem Datensatz die Variable "birthmonth" und möchte diese gerne in neue Variablen aufteilen, da ich insgesamt sehr wenig Datenpunkte habe und durch diese Gruppierung vielleicht eine bessere Varianzanalyse bzw. T-test laufen lassen kann:

Entweder Sommer- und Wintermonate oder Quartale 1-4.

Kann mir jemand helfen? Habe noch keine Lösung gefunden :(

Vielen Dank im Voraus!
jogo
Beiträge: 2085
Registriert: Fr Okt 07, 2016 8:25 am

Re: Variable in 2 neue Variablen aufteilen

Beitrag von jogo »

Hallo delonge,

willkommen im Forum!
Eine Lösung kann es erst geben, wenn bekannt ist, wie die Daten aussehen.
Nur der Name der Variable (eventuell die Spalte eines Dataframes?) reicht dafür nicht aus.

Bitte lies: viewtopic.php?f=20&t=11

Gruß, Jörg
Hufeisen
Beiträge: 162
Registriert: Fr Aug 31, 2018 6:34 pm

Re: Variable in 2 neue Variablen aufteilen

Beitrag von Hufeisen »

Ich habe auch schon mal angefangen. Es könnte so gehen.

Code: Alles auswählen

# Beispieldaten erzeugen
meine_daten <- data.frame(Datum = factor(1:12, levels = 1:12, labels = c("jan", "feb", "mar", "apr", "mai", "jun", "jul", "aug", "sep", "okt", "nov", "dez")))

# Quartale erzeugen
meine_daten$Quartal[meine_daten$Datum == c("jan", "feb", "mar")] <- "Q1"
meine_daten$Quartal[meine_daten$Datum == c("apr", "mai", "jun")] <- "Q2"
  
  # usw.

# Output
> meine_daten
   Datum Quartal
1    jan      Q1
2    feb      Q1
3    mar      Q1
4    apr      Q2
5    mai      Q2
6    jun      Q2
7    jul    <NA>
8    aug    <NA>
9    sep    <NA>
10   okt    <NA>
11   nov    <NA>
12   dez    <NA>
delonge
Beiträge: 6
Registriert: Mo Jul 15, 2019 11:55 am

Re: Variable in 2 neue Variablen aufteilen

Beitrag von delonge »

Hallo Jörg,
komme gerade nicht in mein R-Skript, aus dem Internet konnt ich für den Datensatz für die Variable folgendes auswerfen:

$ birthmonth: int 5 10 12 1 2 3 2 6 5 9 ...

Hilft das schon was? :)
Hufeisen
Beiträge: 162
Registriert: Fr Aug 31, 2018 6:34 pm

Re: Variable in 2 neue Variablen aufteilen

Beitrag von Hufeisen »

Der von mir gezeigt Code läuft mit geringen Anpassungen auch für deine Daten. Versuche es am besten mal selbst, das hilft am besten.
jogo
Beiträge: 2085
Registriert: Fr Okt 07, 2016 8:25 am

Re: Variable in 2 neue Variablen aufteilen

Beitrag von jogo »

Code: Alles auswählen

set.seed(42)
Dat <- data.frame(birthmonth=sample(12, 20, rep=TRUE))

Dat$erstesHalbjahr <- Dat$birthmonth < 7
Dat

Dat$Quartal <- cut(Dat$birthmonth, breaks=c(-Inf, 3.5, 6.5, 9.5, Inf), labels = 1:4)
Dat
Gruß, Jörg
delonge
Beiträge: 6
Registriert: Mo Jul 15, 2019 11:55 am

Re: Variable in 2 neue Variablen aufteilen

Beitrag von delonge »

Danke für die schnellen Tipps - werde es heute Abend ausprobieren!
delonge
Beiträge: 6
Registriert: Mo Jul 15, 2019 11:55 am

Re: Variable in 2 neue Variablen aufteilen

Beitrag von delonge »

Hallo zusammen,

vielen Dank, das hat super geklappt.
Leider hatte ich einen Denkfehler:
Ich wollte gerne die Variable birthmonth nach Quartalen aufteilen um diese dann erneut mit der Variable length in Beziehung zu setzen.
Die Variable length aus dem ursprünglichen Datensatz ist mir also jetzt verloren gegangen bzw. die habe ich nicht beachtet. Ich habe als Ergebnis jetzt nur eine neuen hübschen Datensatz mit den 12 Monaten Januar-Dezember aufgeteilt nach Q1-Q4 :lol:

Mein ursprünglicher Datensatz besteht aus 34 Beobachtungen und 9 Variablen.
Ich möchte also nun mit 2 Variablen davon eine erneute Varianzanalyse durchfühen. Dafür muss ich die Variable Birthmonth nach Quartalen aufteilen, damit ich mehr Beobachtungen innerhalb einer Gruppe habe.

$ birthmonth: Factor w/ 12 levels "1","2","3","4",..: 5 10 12 1 2 3 2 6 5 9 ...
$ length : num 24.4 25.4 24.5 25.2 25.1 25.7 26.1 23 23.6 22.9 ...

Ist das verständlich und nachvollziehbar?
Hat jemand eine Idee?

Vielen Dank und viele Grüße!
jogo
Beiträge: 2085
Registriert: Fr Okt 07, 2016 8:25 am

Re: Variable in 2 neue Variablen aufteilen

Beitrag von jogo »

Bitte zeig mal das Ergebnis von

Code: Alles auswählen

as.integer(as.character(Datensatz$birthmonth))
Gruß, Jörg
delonge
Beiträge: 6
Registriert: Mo Jul 15, 2019 11:55 am

Re: Variable in 2 neue Variablen aufteilen

Beitrag von delonge »

Hallo Jörg,

> as.integer(as.character(kidsfeet$birthmonth))
[1] 5 10 12 1 2 3 2 6 5 9 9 3 8 3 11 4 12 3 6 3 6 7 9 9 10 7 2 12 11 8 6 7 3 4 4 3 3
[38] 1 9

Viele Grüße
Antworten