mehrere Items zusammenfügen

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

Moderatoren: EDi, jogo

bigben
Beiträge: 1126
Registriert: Mi Okt 12, 2016 9:09 am

Re: mehrere Items zusammenfügen

Beitrag von bigben » Fr Jun 07, 2019 10:16 pm

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
---
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 » Fr Jun 07, 2019 10:35 pm

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

Hufeisen
Beiträge: 131
Registriert: Fr Aug 31, 2018 6:34 pm

Re: mehrere Items zusammenfügen

Beitrag von Hufeisen » Sa Jun 08, 2019 8:18 am

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.

bigben
Beiträge: 1126
Registriert: Mi Okt 12, 2016 9:09 am

Re: mehrere Items zusammenfügen

Beitrag von bigben » Sa Jun 08, 2019 6:34 pm

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
---
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 » So Jun 09, 2019 11:34 am

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

Hufeisen
Beiträge: 131
Registriert: Fr Aug 31, 2018 6:34 pm

Re: mehrere Items zusammenfügen

Beitrag von Hufeisen » So Jun 09, 2019 11:50 am

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

Antworten