Seite 3 von 3

Re: mehrere Items zusammenfügen

Verfasst: Fr Jun 07, 2019 10:16 pm
von bigben
Der Bernhard hat Deine Daten quick-and-dirty per copy-paste aus Excel nach R geholt und dann per dput() den Code oben erstellt. Wenn Du wissen willst, wie man die Daten best practice einladen sollte, dann kannst Du auf Hufeisens Angebot eingehen.

Wenn Du wissen willst, wie man einzelne Skalen per t-Test oder ANOVA auf Geschlechtsunterschiede untersucht, dann habe ich Dir das oben vorgemacht.

Was also ist die nächste Auswertung, die Du anstrebst? Bist Du sicher, dass da noch Schritte kommen, für die man das lange Format überhaupt braucht?

LG,
Bernhard

Re: mehrere Items zusammenfügen

Verfasst: Fr Jun 07, 2019 10:35 pm
von Vnsa567
Also als Unabhängige Variablen habe ich: Form Medium und Bewegungsart
Und als Abhängige Variable: Angst

Die Hypothesen die untersucht werden sollen sind
1) Aufnahmen jeder Art von schlängelnden Schlangen rufen mehr Angst hervor als Aufnahmen von kriechenden Schlangen. Zwischen den Gruppen schwimmen und schlängeln erwarten wir keinen signifikanten Unterschied.
-> hier würde man eine MANOVA durchführen, denke ich.

2) Durch die Bewegung der Schlange wird die wahrgenommene Angst verstärkt. Demnach lösen Videos in denen die Schlangrn sich bewegen mehr Angst aus.
-> hier reicht ein t-Test?
3) Frauen nehmen über alle Kategorien hinweg mehr Angst wahr als männliche Probanden
-> hier auch t-Test

Re: mehrere Items zusammenfügen

Verfasst: Sa Jun 08, 2019 8:18 am
von Hufeisen
Vnsa567 hat geschrieben: Fr Jun 07, 2019 10:11 pm Aber gibt es eine Möglichkeit, dass weiterhin alle 60 VPN aufgelistet sind?
Klar, einfach die Funktion head() weglassen. Die habe ich benutzt, weil ich nicht 60 Zeilen kopieren und so den Codeblock unnötig lang machen wollte. Die Funktion aggregate macht aber eigentlich nicht mehr, als die Spalten VPNnr und Geschlecht an die neueTabelle anzubinden, wenn du auch nach VPNnr aggregieren lässt.

Re: mehrere Items zusammenfügen

Verfasst: Sa Jun 08, 2019 6:34 pm
von bigben
Hallo Vnsa,

dass Du für einfache t-Tests die Daten nicht weiter umformen musst, habe ich ja oben vorgeführt und wenn MANOVA die richtige Methode für Deine Fragestellung ist, dann würde ich da ganz ähnlich vorgehen: "Gesamt"-Spalten im data.frame erzeugen wie oben vorgeführt und dann gibt es in R eine Funktion manova(). https://www.statmethods.net/stats/anova.html

Bis hierhin sehe ich an Deinen Anforderungen noch nicht, wo Du das tidyverse mit seiner Vorliebe für Daten im langen Format brauchst.

LG,
Bernhard

Re: mehrere Items zusammenfügen

Verfasst: So Jun 09, 2019 11:34 am
von Vnsa567
vielen lieben Dank für die ganze Hilfe. Bisher hat mir das wirklich sehr geholfen.
Ich weiß, dass man für den einfachen t-Test nicht das long Format benötigt.

Nur weiß ich eben nicht, was mit den Daten noch gemacht werden muss, dafür muss ich wieder in die Sprechstunde. Und dort wurde wie gesagt, gesagt, dass wir das erst mal ins long Format bringen müssen.
Ich habe mal ein Bild angehängt, die eine Skizze von ihm zeigt, wie er die Tabelle gerne hätte:

Bild

Versucht haben es meine Kolleginnen so:

Code: Alles auswählen

names(neueTabelle)[1] <- "Bilder_Base"
names(neueTabelle)[2] <- "Bilder_Kriechen"
names(neueTabelle)[3] <- "Bilder_Schlängeln"
names(neueTabelle)[4] <- "Bilder_Schwimmen"
names(neueTabelle)[5] <- "Video_Base"
names(neueTabelle)[6] <- "Video_Kriechen"
names(neueTabelle)[7] <- "Video_Schlängeln"
names(neueTabelle)[8] <- "Video_Schwimmen"

schlangen.long<- reshape(neueTabelle, direction = "long", varying = list("Bilder_Base","Bilder_Kriechen","Bilder_Schlängeln", "Bilder_Schwimmen","Video_Base","Video_Kriechen","Video_Schlängeln", "Video_Schwimmen"),idvar=c("VPNnr","Geschlecht"),timevar= "Mediumsbedingung")
schlangen.long <- reshape(neueTabelle ,direction = "long", varying=list(names(neueTabelle)[1:8]),v.names="Durchschnittswert",idvar=c("VPNnr","Geschlecht"),timevar= "Mediumsbedingung", times = names(neueTabelle)[1:8])
schlangen.long <- reshape(neueTabelle ,direction = "long", varying=list(names(neueTabelle)[1:8]),v.names="Durchschnittswert",idvar=c("VPNnr","Geschlecht"),timevar= "Mediumsbedingung", times = list(names(neueTabelle)[1:8]))

schlangen.long <- reshape(neueTabelle, direction = "long", varying=list(names(neueTabelle)[1:8]),v.names="Durchschnittswert",idvar=c("VPNnr", "Geschlecht"),timevar= "Mediumsbedingung", times = names(neueTabelle)[1:8])
Das sind die jeweiligen Fehlermeldungen:

Fehler in reshapeLong(data, idvar = idvar, timevar = timevar, varying = varying, :
'lengths(varying)' must all match 'length(times)'

Fehler in data[, idvar] : Indizierung außerhalb der Grenzen

Re: mehrere Items zusammenfügen

Verfasst: So Jun 09, 2019 11:50 am
von Hufeisen
Die Daten in das long-Format zu bringen, schadet zumindest nicht, wenn es in Deinem Praktikum darum geht, die Datenaufbereitung zu erlernen (so hatte ich das verstanden). Und nebenbei: Du machst das ganz großartig. Die Lernkurve ist in R sowieso sehr steil und dann rät man Dir auch noch dazu, die ersten Schritte außerhalb von base R zu machen. Das ist so, als müsste man auf einem Einrad lernen, Fahrrad zu fahren. Ob es für die Analyse der Daten nötig ist, hängt eher davon ab, in welches Verfahren man die Daten einspeisen möchte. Viele Funktionen im tidyverse mögen Daten im long-Format, diese sind aber nicht immer nötig. Das hatte Bernhard ja schon ausgeführt.

Der Befehl reshape ist wohl der falsche für Euch.
This function reshapes a data frame between ‘wide’ format with repeated measurements in separate columns of the same record and ‘long’ format with the repeated measurements in separate records.
Schau dir mal die Funktion melt() an: ?reshape2::melt

Code: Alles auswählen

 # neueTabelle als matrix - will nicht so recht
> melt(neueTabelle) [c(56:65), ]
   Var1            Var2 value
56   56     Bilder_Base   5.0
57   57     Bilder_Base   3.4
58   58     Bilder_Base   1.8
59   59     Bilder_Base   1.2
60   60     Bilder_Base   1.4
61    1 Bilder_Kriechen   1.8
62    2 Bilder_Kriechen   1.0
63    3 Bilder_Kriechen   1.4
64    4 Bilder_Kriechen   2.4
65    5 Bilder_Kriechen   1.6

# neueTabelle als data.frame
neueTabelle <- as.data.frame(neueTabelle)

> melt(neueTabelle) [c(56:65), ]
No id variables; using all as measure variables
          variable value
56     Bilder_Base   5.0
57     Bilder_Base   3.4
58     Bilder_Base   1.8
59     Bilder_Base   1.2
60     Bilder_Base   1.4
61 Bilder_Kriechen   1.8
62 Bilder_Kriechen   1.0
63 Bilder_Kriechen   1.4
64 Bilder_Kriechen   2.4
65 Bilder_Kriechen   1.6