mehrere Items zusammenfügen

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

Moderatoren: EDi, jogo

Vnsa567
Beiträge: 10
Registriert: Fr Jun 07, 2019 8:20 am

Re: mehrere Items zusammenfügen

Beitrag von Vnsa567 »

Hallo,

es handelt sich hierbei um keine Hausaufgabe. Es ist ein experimental-psychologisches Praktikum. Leider gibt es keine Hilfe in Sachen Statistik und Auswertung von der Dozentin.

Die Daten sind mithilfe eines Fragebogens gesammelt worden.
Es soll unter anderem getestet werden, ob sich die Erregung/Angst bei Mann/Frau unterscheidet
Hilfe bei der Auswertung der Daten habe ich in der Sprechstunde gesucht - und dort wurde gesagt, man muss die Daten in ein long Format bringen, die Kategorien zusammenfassen und dann eine ANOVA durchführen.

Die ANOVA und das Auswerten generell sind nicht mein Problem. Nur weiß ich einfach nicht, was ich mit den Rohdaten machen soll, damit ich diese eben auswerten kann. Mir wurde gesagt, dass das so nicht geht.

Deswegen war meine Idee, die Kategorien erst einmal zusammenzufassen mithilfe von rowSums().
Und dann die Funktion reshape()
Hufeisen
Beiträge: 162
Registriert: Fr Aug 31, 2018 6:34 pm

Re: mehrere Items zusammenfügen

Beitrag von Hufeisen »

Code: Alles auswählen

Mir wurde gesagt, dass das so nicht geht.

Deswegen war meine Idee, die Kategorien erst einmal zusammenzufassen mithilfe von rowSums().
Und dann die Funktion reshape()
Geht nicht, gibt's nicht, wenn man vor einer Programmiersprache sitzt :D. Trotzdem ist deine Idee nicht schlecht, da rowSums() einfach ist. Dieses Dokument dürfte eine schöne Vorlage für dich sein: https://users.fmi.uni-jena.de/~jschum/biostat/ANOVA.pdf. Dieser Text geht allerdings von im long-Format vorliegenden Daten aus und ich würden nicht mit dem Befehl attach() arbeiten. Guck es dir mal an und melde dich, wenn du Schwierigkeiten mit reshape (oder etwas anderem) hast.
jogo
Beiträge: 2085
Registriert: Fr Okt 07, 2016 8:25 am

Re: mehrere Items zusammenfügen

Beitrag von jogo »

Hallo Vanessa,

hier ein selbstgebasteltes reshape mit den Daten, die Bernhard in seiner Nachricht definiert hatte:

Code: Alles auswählen

schlangen[grepl("Bildkrie", colnames(schlangen))]
stack(schlangen[grepl("Bildkrie", colnames(schlangen))])

longDat <- data.frame(VPNr=schlangen$VPNnr, Kriechen=stack(schlangen[grepl("Bildkrie", colnames(schlangen))]))
Gruß, Jörg
bigben
Beiträge: 2771
Registriert: Mi Okt 12, 2016 9:09 am

Re: mehrere Items zusammenfügen

Beitrag von bigben »

Es soll unter anderem getestet werden, ob sich die Erregung/Angst bei Mann/Frau unterscheidet
Ich verstehe das Problem mit dem langen Format noch nicht. Nehmen wir die Daten von oben und fassen wir die Erregung/Angst für Bildkriechen zusammen:

Code: Alles auswählen

schlangen$BildkriechenGesamt <- rowSums(schlangen[,c("Bildkriechen1", "Bildkriechen2", "Bildkriechen3", "Bildkriechen4", "Bildkriechen5")])
Dann brauche ich für den Geschlechtervergleich keine Umformung und keine ANOVA, da tut es ein einfacher t-Test?

Code: Alles auswählen

t.test(schlangen$BildkriechenGesamt ~ schlangen$Geschlecht)
Wenn später noch mehr Prädicotren dazu kommen sollen gerne auch ANOVA ohne Umformen:

Code: Alles auswählen

summary(aov(schlangen$BildkriechenGesamt ~ schlangen$Geschlecht))
Wie gesagt, vielleicht verstehe ich das Problem einfach noch nicht.

LG,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Vnsa567
Beiträge: 10
Registriert: Fr Jun 07, 2019 8:20 am

Re: mehrere Items zusammenfügen

Beitrag von Vnsa567 »

Vielen lieben Dank Jörg!
Nur leider sehen meine Daten mittlerweile anders aus und es muss nicht nur BilderKriechen rein.

Ich hatte im Forum recherchiert und den Wikipedia Eintrag zu BBCode gelesen. Ich wollte die Befehle, die ich bisher eingegeben habe, hier eingeben mit dem „code“ Button oben. Der sagt aber dann, das hätte zu viele Zeichen.

Wie man merkt ist programmieren und alles was damit zusammenhängt, nicht mein Talent. Es macht mir Spaß und es ist interessant nur leider verstehe ich es kaum.

Könnte mir hier vielleicht jemand sagen, was genau in die reshape Funktion eingegeben werden muss?

Ich habe mir auch etliche YouTube Videos dazu angesehen, nur umsetzen konnte ich bisher nur, was mir hier im Forum geschrieben wurde.
Vnsa567
Beiträge: 10
Registriert: Fr Jun 07, 2019 8:20 am

Re: mehrere Items zusammenfügen

Beitrag von Vnsa567 »

Ach an Bernhard: auch Dir natürlich vielen lieben Dank, ohne dich wäre ich gar nicht weitergekommen.

Mir wurde nur gesagt, dass man das long Format für so gut wie alle Funktionen benötigt und man das mal gemacht haben soll. Das ist das erste Mal, dass ich alleine selbstständig erhobene Daten auswerten muss.
Im Studium hat man uns nur immer gezeigt, wie man Daten auswertet, aber nie, wie die Daten aussehen müssen, damit man bestimmte Dinge damit machen kann. Und wie man das alles umformt wurde nie erwähnt. Das Paket tidyverse kenne ich auch erst seit gestern..
Hufeisen
Beiträge: 162
Registriert: Fr Aug 31, 2018 6:34 pm

Re: mehrere Items zusammenfügen

Beitrag von Hufeisen »

Vnsa567 hat geschrieben: Fr Jun 07, 2019 5:02 pm Vielen lieben Dank Jörg!
Nur leider sehen meine Daten mittlerweile anders aus und es muss nicht nur BilderKriechen rein.

Ich hatte im Forum recherchiert und den Wikipedia Eintrag zu BBCode gelesen. Ich wollte die Befehle, die ich bisher eingegeben habe, hier eingeben mit dem „code“ Button oben. Der sagt aber dann, das hätte zu viele Zeichen.
Wir haben deine Daten. Wenn wir wissen, was du gemacht hast, können wir dir weiter helfen. Dazu musst du aber deinen Code zeigen. Hier kann man ziemlich viel eingeben, deshalb wundert mich die Fehlermeldung. Das muss so aussehen (ohne die Leerzeichen):
[ code]Der Inhalt deines Skripts...[ /code]
Vnsa567
Beiträge: 10
Registriert: Fr Jun 07, 2019 8:20 am

Re: mehrere Items zusammenfügen

Beitrag von Vnsa567 »

also ich habe den Befehl von Bernhard übernommen (bei dem ich überhaupt nicht verstehe, wie er das so schnell gemacht hat und woher er das alles genommen hat)

dann habe ich das eingegeben:

Code: Alles auswählen

Bilder_Kriechen <- rowMeans(schlangen[,c("Bildkriechen1", "Bildkriechen2", "Bildkriechen3", "Bildkriechen4", "Bildkriechen5")])
Bilder_Base <- rowMeans(schlangen[,c("Bildbase1", "Bildbase2", "Bildbase3", "Bildbase4", "Bildbase5")])
Bilder_Schwimmen <- rowMeans(schlangen[,c("Bildschwimmen1", "Bildschwimmen2", "Bildschwimmen3", "Bildschwimmen4", "Bildschwimmen5")])
Bilder_Schlängeln <- rowMeans(schlangen[,c("Bildschlängeln1", "Bildschlängeln2", "Bildschlängeln3", "Bildschlängeln4", "Bildschlängeln5")])
Video_Kriechen <- rowMeans(schlangen[,c("Videokriechen1", "Videokriechen2", "Videokriechen3", "Videokriechen4", "Videokriechen5")])
Video_Base <- rowMeans(schlangen[,c("Videobase1", "Videobase2", "Videobase3", "Videobase4", "Videobase5")])
Video_Schwimmen <- rowMeans(schlangen[,c("Videoschwimmen1", "Videoschwimmen2", "Videoschwimmen3", "Videoschwimmen4", "Videoschwimmen5")])
Video_Schlängeln <- rowMeans(schlangen[,c("Videoschlängeln1", "Videoschlängeln2", "Videoschlängeln3", "Videoschlängeln4", "Videoschlängeln5")])


neueTabelle <- aggregate(cbind(Bilder_Base, Bilder_Kriechen, Bilder_Schlängeln, Bilder_Schwimmen, Video_Base, Video_Kriechen, Video_Schlängeln, Video_Schwimmen) ~ Geschlecht + VPNnr, data=DatenSnakes, FUN=mean)
Hoffe, dass es jetzt klappt.
Hufeisen
Beiträge: 162
Registriert: Fr Aug 31, 2018 6:34 pm

Re: mehrere Items zusammenfügen

Beitrag von Hufeisen »

Also die Funktion erzeugt zumindest einen Output. Allerdings glaube ich nicht, dass er sinnvoll ist. Die Variable VPNnr wird wohl die Probandennummer kodieren. Dementsprechend gibt es bei 60 Fällen 60 Gruppen, die aggregate unterteilen muss - es tut also eigentlich nichts. Zum Vergleich habe ich aggregate nur nach Geschlecht gruppieren lassen.

Code: Alles auswählen

# Deine Daten einlesen
schlangen <- read.csv(file = file.choose(), header = TRUE)

# Dein Code
Bilder_Kriechen <- rowMeans(schlangen[,c("Bildkriechen1", "Bildkriechen2", "Bildkriechen3", "Bildkriechen4", "Bildkriechen5")])
Bilder_Base <- rowMeans(schlangen[,c("Bildbase1", "Bildbase2", "Bildbase3", "Bildbase4", "Bildbase5")])
Bilder_Schwimmen <- rowMeans(schlangen[,c("Bildschwimmen1", "Bildschwimmen2", "Bildschwimmen3", "Bildschwimmen4", "Bildschwimmen5")])
Bilder_Schlängeln <- rowMeans(schlangen[,c("Bildschlängeln1", "Bildschlängeln2", "Bildschlängeln3", "Bildschlängeln4", "Bildschlängeln5")])
Video_Kriechen <- rowMeans(schlangen[,c("Videokriechen1", "Videokriechen2", "Videokriechen3", "Videokriechen4", "Videokriechen5")])
Video_Base <- rowMeans(schlangen[,c("Videobase1", "Videobase2", "Videobase3", "Videobase4", "Videobase5")])
Video_Schwimmen <- rowMeans(schlangen[,c("Videoschwimmen1", "Videoschwimmen2", "Videoschwimmen3", "Videoschwimmen4", "Videoschwimmen5")])
Video_Schlängeln <- rowMeans(schlangen[,c("Videoschlängeln1", "Videoschlängeln2", "Videoschlängeln3", "Videoschlängeln4", "Videoschlängeln5")])

# neueTabelle erstellen
neueTabelle <- cbind(Bilder_Base, Bilder_Kriechen, Bilder_Schlängeln, Bilder_Schwimmen, Video_Base, Video_Kriechen, Video_Schlängeln, Video_Schwimmen)


# So sollten die ersten 6 Zeilen deines Outputs aussehen
> head(aggregate(neueTabelle ~ Geschlecht + VPNnr, data = schlangen, FUN = mean))
  Geschlecht VPNnr Bilder_Base Bilder_Kriechen Bilder_Schlängeln Bilder_Schwimmen Video_Base Video_Kriechen Video_Schlängeln Video_Schwimmen
1          1     1         1.4             1.8               1.8              1.8        2.0            2.8              3.6             3.2
2          1     2         1.0             1.0               1.0              1.8        1.4            1.6              2.4             2.8
3          0     3         1.0             1.4               2.0              1.2        1.6            1.2              1.0             1.2
4          1     4         2.8             2.4               3.2              2.2        3.8            2.4              3.4             2.6
5          0     5         1.2             1.6               1.0              1.2        1.2            1.2              1.0             1.8
6          0     6         1.8             1.4               2.0              2.0        2.8            2.4              3.8             3.8


# So sieht ein gruppierter Output aus
> aggregate(neueTabelle ~ Geschlecht, data = schlangen, FUN = mean)
  Geschlecht Bilder_Base Bilder_Kriechen Bilder_Schlängeln Bilder_Schwimmen Video_Base Video_Kriechen Video_Schlängeln Video_Schwimmen
1          0        1.88        1.813333          2.060000         1.793333       2.08       1.980000         2.180000        2.233333
2          1        1.98        1.820000          2.133333         2.206667       2.40       2.293333         2.553333        2.500000
Vnsa567
Beiträge: 10
Registriert: Fr Jun 07, 2019 8:20 am

Re: mehrere Items zusammenfügen

Beitrag von Vnsa567 »

Huhu Hufeisen,

den Output verstehe ich aber nicht so recht.
Er beinhaltet ja nicht mehr die 60 VPN?
Also ja, das ist die Funktion von aggregate.
Aber gibt es eine Möglichkeit, dass weiterhin alle 60 VPN aufgelistet sind?
Antworten