neuer data.frame, einzelne Items umpolen

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

Moderatoren: EDi, jogo

Antworten
faraho
Beiträge: 7
Registriert: Di Aug 04, 2020 2:49 pm

neuer data.frame, einzelne Items umpolen

Beitrag von faraho »

Hallo zusammen,
ich habe kaum Erfahrungen mit R und versuche grade ein Skript zu erstellen für meine Erhebung.

Der Datensatz ist nicht wirklich klein (240 Variablen, 450 Observations), deshalb möchte ich einen neuen data.frame mit den für mich wichtigen Daten haben.

Vorher wollte ich die einzelnen Variablen (= Items) zu einer Variable (= eine Persönlichkeitseigenschaft) zusammenfügen. Einzelne Items müssten umgepolt werden.

Meine Reihenfolge war jetzt: Erst umpolen der einzelnen Items (Likert 5-stufig) und zwar so: v_276r <- 6 - v_276
Da fängt schon das erste Problem an: Das Umpolen funktioniert zwar, aber die Items im Datensatz verändern sich nicht, stattdessen werden mir im Evironment die umgepolten Items als Values aufgelistet.

Die Items dann als neue Variable zu bündeln klappt mit der rowMeans Funktion (bringt mir aber wenig, wenn die Items vorher nicht umgepolt werden).

Um einen neuen data.frame mit den für mich relevanten Daten zu erstellen, wollte ich die subset Funktion nutzen. Gleichzeitig sollen noch andere Variablen rein und alle Personen die in der Experimentalgruppe (c_0001==1) sind. Die Idee ist dann dass ich zwei Subsets habe mit jeweils Experimental- und Kontrollgruppe und die ich dann vergleichen kann. Hier dann auch noch die Frage, ob das so Sinn macht oder ob ich lieber beide Gruppen in einen data.frame packe?

Bei R sieht das bisher so aus: my.data <- subset(data.ges, c_0001 == 1, ambig, usw... )
Das klappt auch alles.

Unterm Strich weiß ich also nur noch nicht wie ich die umgepolten Items in meinen Datensatz bekomme.

Ich hoffe jemand kann Licht ins Dunkeln bringen und mir sagen wo der Fehler liegt :)
Danke sehr.
bigben
Beiträge: 2781
Registriert: Mi Okt 12, 2016 9:09 am

Re: neuer data.frame, einzelne Items umpolen

Beitrag von bigben »

Hallo!
faraho hat geschrieben: Do Aug 06, 2020 1:08 pmErst umpolen der einzelnen Items (Likert 5-stufig) und zwar so: v_276r <- 6 - v_276
Da fängt schon das erste Problem an: Das Umpolen funktioniert zwar, aber die Items im Datensatz verändern sich nicht, stattdessen werden mir im Evironment die umgepolten Items als Values aufgelistet.
Das klingt ganz so, als sei da jemand in die attach-Falle getappt. Benutzt Du eine attach-Anweisung in Deinem Code? Dann lass das lieber bleiben. R kann viele Dataframes gleichzeitig im Speicher haben, deshalb musst Du jedenfalls dazusagen, in welchen Dataframe diese umgepolten Daten sollen. Nehmen wir an, Deine Daten wären im Dataframe umfragen, dann könnte es heißen:

Code: Alles auswählen

umfrage$ v_276r <- 6 - umfrage$v_276
Das sollte dann klappen.
Hier dann auch noch die Frage, ob das so Sinn macht oder ob ich lieber beide Gruppen in einen data.frame packe?
Tendenziell immer beide Gruppen in einen gemeinsamen Dataframe und eine neue Spalte in der drin steht, zu welcher Gruppe die Daten gehören. Viele Analysen gehen sowohl als auch aber spätestens wenn Du die Daten mit ggplot2 plotten möchtest, brauchst Du alles in einem Dataframe.
Ich hoffe jemand kann Licht ins Dunkeln bringen und mir sagen wo der Fehler liegt :)
Je mehr Du von Deinem Code postest, umso eher findet jemand darin den Fehler. Ich tippe auf den ungeschickten Gebrauch von attach.

LG,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
faraho
Beiträge: 7
Registriert: Di Aug 04, 2020 2:49 pm

Re: neuer data.frame, einzelne Items umpolen

Beitrag von faraho »

Vielen Dank Bernhard!

Ja tatsächlich habe ich mit attach gearbeitet. Danke sehr!
faraho
Beiträge: 7
Registriert: Di Aug 04, 2020 2:49 pm

Re: neuer data.frame, einzelne Items umpolen

Beitrag von faraho »

Ok also jetzt hab ich zwar umpolen können, aber dafür funktioniert die rowMeans-Funktion nicht mehr.

Ich hatte vor dem Umpolen einfach die Spaltennummer in den Befehl gegeben
data.ges$ambig <- rowMeans(data.ges[65:86], na.rm = TRUE)

Das hatte funktioniert. Da aber nun die umgepolten Variablen am Ende des dataframes noch mal aufgelistet wurden, dachte ich, es muss ja auch funktionieren, wenn ich einfach die einzelnen Itemnamen einfüge, also so:

data.ges$ambig <- rowMeans(data.ges[c("v_276r","v_277r", "v_278".....)], na.rm = TRUE)

Hier bekomme ich dann diese Fehlermeldung:

"Fehler in `[.data.frame`(data.ges, c("v_276r", "v_277r", "v_278", "v_279", :
nicht definierte Spalten gewählt"

Muss ich immer die Spaltennummer angeben?

Ich hab es dann aber auch (wieder haha) mit attach versucht:
attach(data.ges)
data.ges$ambig <- rowMeans (data.ges("v_276r","v_277r","v_278":..))

Hier bekomme ich dann die Fehlermeldung :

"Fehler in data.ges("v_276r", "v_277r", "v_278", "v_279", "v_280r", "v_281r", :
konnte Funktion "data.ges" nicht finden"


Wieso ist R so gemein zu mir?
bigben
Beiträge: 2781
Registriert: Mi Okt 12, 2016 9:09 am

Re: neuer data.frame, einzelne Items umpolen

Beitrag von bigben »

R ist nicht gemein. Das Problem ist eher, dass das Leben kein Ponyhof ist. R will einfach nur einen präzisen Auftrag im Rahmen der gegebenen Syntax. Und wenn Du mich fragst, dann ist R in vielen Dingen noch zu locker...

Was nun Dein Problem angeht so sind wir an dem Punkt, wo Du uns ein mcve liefern solltest, wie es hier definiert wird: https://stackoverflow.com/help/minimal- ... le-example

Gute Hinweise, wie man das in R macht, stehen hier: viewtopic.php?f=20&t=11

Code: Alles auswählen

"Fehler in data.ges("v_276r", "v_277r", "v_278", "v_279", "v_280r", "v_281r", :
konnte Funktion "data.ges" nicht finden"
Das liegt an der Verwendung von runden Klammern wo eckige hingehören. Das gehört zu den Beispielen, wo R viel zu locker ist. Es würde Dir durchgehen lassen, wenn Du sowohl eine Funktion mit dem Namen data.ges als auch einen Datensatz mit dem Namen data.ges hättest. Nun sieht es die runden Klammern, denkt an eine Funktion und meckert, dass eine Funktion dieses Namens nicht existiert.

Bis dann,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
faraho
Beiträge: 7
Registriert: Di Aug 04, 2020 2:49 pm

Re: neuer data.frame, einzelne Items umpolen

Beitrag von faraho »

Ah okay danke ich probiers! ich hab den Befehl tatsächlich so aus dem "R für Einsteiger" von Luhmann übernommen
Antworten