Erstellen neuer Variablen in R

Allgemeine Statistik mit R, die Test-Methode ist noch nicht bekannt, ich habe noch keinen Plan!

Moderatoren: EDi, jogo

Gottchen
Beiträge: 20
Registriert: Sa Mai 16, 2020 7:22 pm

Erstellen neuer Variablen in R

Beitrag von Gottchen »

Hey, ich bin sehr neu im R-Bereich. Benutze momentan R-Studio.

Meine Frage ist: Wie kann ich eine neue einzelne Variable erstellen, die für jede einzelne Person einer Umfrage/Studie den Mittelwert aus 3 bestimmten Variablen (StrongMixed, NotTorn, Indecisive) enthält? Insgesamt sind es 88 Personen,

Code: Alles auswählen

StrongMixed: 3 3 1 -2 2 1 2 -1 2 -3...
NotTorn: -3 3 -2 2 2 3 2 -2 2 3...
Indecisive: -3 3 -1 -3 1 1 1 1 1 -1,s...
Bin jetzt soweit, aber damit komme ich nicht weiter:

Code: Alles auswählen

mscstart <- read.table(text = 'StrongMixed NotTorn Indecisive
3 3 1 -2 2 1 2 -1 2 -3...
-3 3 -2 2 2 3 2 -2 2 3...
-3 3 -1 -3 1 1 1 1 1 -1...,
header = TRUE)
Die Punkte stehen natürlich für weitere Werte (-3 bis 3) der Personen (also insgesamt 88 Werte je Variable).

Was mache ich falsch? Wie geht es weiter?
Zuletzt geändert von Gottchen am Sa Mai 16, 2020 7:37 pm, insgesamt 1-mal geändert.
jogo
Beiträge: 2086
Registriert: Fr Okt 07, 2016 8:25 am

Re: Erstellen neuer Variablen in R

Beitrag von jogo »

Hallo Gottchen,

willkommen im Forum!
read.table() liest Zeile für Zeile. - so wie bei Dir geht es also nicht.
Meine Variante:

Code: Alles auswählen

mscstart <- data.frame(
StrongMixed=c( 3, 3, 1, -2, 2, 1, 2, -1, 2, -3),
NotTorn=c(-3, 3, -2, 2, 2, 3, 2, -2, 2, 3),
Indecisive=c(-3, 3, -1, -3, 1, 1, 1, 1, 1, -1))
mscstart$new <- rowMeans(mscstart)
mscstart
Wie liegen Deine 88 Beobachtungen denn nun wirklich vor?

Gruß, Jörg
Gottchen
Beiträge: 20
Registriert: Sa Mai 16, 2020 7:22 pm

Re: Erstellen neuer Variablen in R

Beitrag von Gottchen »

Hey Jörg, sorry für die etwas späte Antwort. Hier das sind alle Testwerte zu den 88 Probanden und den jeweiligen Variablen (StrongMixed, NotTorn, Indecisive):

Code: Alles auswählen

StrongMixed 3 3 1 -2 2 1 2 -1 2 -3 2 -1 -1 0 0 0 2 -2 2 0 1 -2 1 1 3 0 0 2 -1 1 -1 0 1 1 3 -1 -3 -3 -1 3 0 -1 -2 -1 -1 1 -1 -3 -1 3 1 2 2 1 -3 3 0 2 0 2 2 3 1 0 1 0 -1 2 2 1 -2 -1 -1 1 -2 2 3 0 1 0 -2 3 1 2 -2 -2 2 3

NotTorn -3 3 -2 2 2 3 2 -2 2 3 1 -1 -1 -1 0 -2 2 -2 2 2 2 1 3 -1 -1 -2 -2 -3 0 1 -1 2 3 1 1 -2 -3 3 -1 -3 -2 -2 -2 -2 -1 1 -1 -3 -1 0 3 2 2 -1 -3 0 2 1 -1 -1 -2 1 1 -2 -2 -1 1 1 -2 2 -3 -1 -1 2 -3 2 0 -1 2 0 -3 -3 -2 -2 -3 -2 -3 3

Indecisive -3 3 -1 -3 1 1 1 1 1 -1 1 0 -1 -1 0 -2 3 -2 2 2 1 0 1 2 -3 2 -2 -3 0 1 -1 2 1 NA 2 1 -3 -1 0 -3 -2 -2 -2 -2 -1 NA -1 -3 -2 -2 1 1 1 0 -3 -2 2 1 -1 -1 3 1 -1 -2 -1 -1 0 1 -3 1 -2 0 0 -1 -2 1 -2 1 -1 1 -2 -3 -1 -3 -2 -2 -3 3
Muss man diese Werte in R getrennt mit Kommata oder einem Leerzeichen eingeben?
Wie berechne ich den Mittelwert jeder einzelnen Person (1-88) in der jeweiligen Variable (StrongMixed, NotTorn, Indecisive)?
jogo
Beiträge: 2086
Registriert: Fr Okt 07, 2016 8:25 am

Re: Erstellen neuer Variablen in R

Beitrag von jogo »

Hallo Gottchen,

das ist etwas ungewöhnlich, dass die Daten so gegeben sind. Normalerweise gibt es eine Tabelle, in der jede Variable in einer Spalte ist und jede Zeile einem Probanden entspricht.
Aber auch für Deinen Fall kann man sich etwas einfallen lassen (es dauert nur etwas ...).

... so etwa:

Code: Alles auswählen

StrongMixed <- "3 3 1 -2 2 1 2 -1 2 -3 2 -1 -1 0 0 0 2 -2 2 0 1 -2 1 1 3 0 0 2 -1 1 -1 0 1 1 3 -1 -3 -3 -1 3 0 -1 -2 -1 -1 1 -1 -3 -1 3 1 2 2 1 -3 3 0 2 0 2 2 3 1 0 1 0 -1 2 2 1 -2 -1 -1 1 -2 2 3 0 1 0 -2 3 1 2 -2 -2 2 3"
NotTorn <- "-3 3 -2 2 2 3 2 -2 2 3 1 -1 -1 -1 0 -2 2 -2 2 2 2 1 3 -1 -1 -2 -2 -3 0 1 -1 2 3 1 1 -2 -3 3 -1 -3 -2 -2 -2 -2 -1 1 -1 -3 -1 0 3 2 2 -1 -3 0 2 1 -1 -1 -2 1 1 -2 -2 -1 1 1 -2 2 -3 -1 -1 2 -3 2 0 -1 2 0 -3 -3 -2 -2 -3 -2 -3 3"
Indecisive <- "-3 3 -1 -3 1 1 1 1 1 -1 1 0 -1 -1 0 -2 3 -2 2 2 1 0 1 2 -3 2 -2 -3 0 1 -1 2 1 NA 2 1 -3 -1 0 -3 -2 -2 -2 -2 -1 NA -1 -3 -2 -2 1 1 1 0 -3 -2 2 1 -1 -1 3 1 -1 -2 -1 -1 0 1 -3 1 -2 0 0 -1 -2 1 -2 1 -1 1 -2 -3 -1 -3 -2 -2 -3 3"

mscstart <- data.frame(
  StrongMixed=strsplit(StrongMixed, " ")[[1]],
  NotTorn=strsplit(NotTorn, " ")[[1]],
  Indecisive=strsplit(Indecisive, " ")[[1]])
mscstart$new <- rowMeans(mscstart, na.rm=TRUE)
mscstart
Gruß, Jörg
Gottchen
Beiträge: 20
Registriert: Sa Mai 16, 2020 7:22 pm

Re: Erstellen neuer Variablen in R

Beitrag von Gottchen »

Doch, ich habe auch den Datensatz in einer Excel Tabelle als csv-Datei. Habe nur keinen Plan, wie ich die hier im Forum einfüge :)
Zuletzt geändert von Gottchen am So Mai 17, 2020 10:44 am, insgesamt 2-mal geändert.
Gottchen
Beiträge: 20
Registriert: Sa Mai 16, 2020 7:22 pm

Re: Erstellen neuer Variablen in R

Beitrag von Gottchen »

Das hier wäre die komplette csv-Datei.
Dateianhänge
henderson_replication_data1.csv
(49.15 KiB) 43-mal heruntergeladen
Gottchen
Beiträge: 20
Registriert: Sa Mai 16, 2020 7:22 pm

Re: Erstellen neuer Variablen in R

Beitrag von Gottchen »

jogo hat geschrieben: Sa Mai 16, 2020 7:57 pm Hallo Gottchen,

das ist etwas ungewöhnlich, dass die Daten so gegeben sind. Normalerweise gibt es eine Tabelle, in der jede Variable in einer Spalte ist und jede Zeile einem Probanden entspricht.
Aber auch für Deinen Fall kann man sich etwas einfallen lassen (es dauert nur etwas ...).

... so etwa:

Code: Alles auswählen

StrongMixed <- "3 3 1 -2 2 1 2 -1 2 -3 2 -1 -1 0 0 0 2 -2 2 0 1 -2 1 1 3 0 0 2 -1 1 -1 0 1 1 3 -1 -3 -3 -1 3 0 -1 -2 -1 -1 1 -1 -3 -1 3 1 2 2 1 -3 3 0 2 0 2 2 3 1 0 1 0 -1 2 2 1 -2 -1 -1 1 -2 2 3 0 1 0 -2 3 1 2 -2 -2 2 3"
NotTorn <- "-3 3 -2 2 2 3 2 -2 2 3 1 -1 -1 -1 0 -2 2 -2 2 2 2 1 3 -1 -1 -2 -2 -3 0 1 -1 2 3 1 1 -2 -3 3 -1 -3 -2 -2 -2 -2 -1 1 -1 -3 -1 0 3 2 2 -1 -3 0 2 1 -1 -1 -2 1 1 -2 -2 -1 1 1 -2 2 -3 -1 -1 2 -3 2 0 -1 2 0 -3 -3 -2 -2 -3 -2 -3 3"
Indecisive <- "-3 3 -1 -3 1 1 1 1 1 -1 1 0 -1 -1 0 -2 3 -2 2 2 1 0 1 2 -3 2 -2 -3 0 1 -1 2 1 NA 2 1 -3 -1 0 -3 -2 -2 -2 -2 -1 NA -1 -3 -2 -2 1 1 1 0 -3 -2 2 1 -1 -1 3 1 -1 -2 -1 -1 0 1 -3 1 -2 0 0 -1 -2 1 -2 1 -1 1 -2 -3 -1 -3 -2 -2 -3 3"

mscstart <- data.frame(
  StrongMixed=strsplit(StrongMixed, " ")[[1]],
  NotTorn=strsplit(NotTorn, " ")[[1]],
  Indecisive=strsplit(Indecisive, " ")[[1]])
mscstart$new <- rowMeans(mscstart, na.rm=TRUE)
mscstart
Gruß, Jörg
Hey Jörg,
habe das bei mir in R eingegeben und es kommt leider kein Ergebnis raus. Siehe oben, habe ich eine dazugehörige csv-Datei mit dem kompletten Datensatz angehangen.
Benutzeravatar
student
Beiträge: 674
Registriert: Fr Okt 07, 2016 9:52 am

Re: Erstellen neuer Variablen in R

Beitrag von student »

Hallo Gottchen,

bei mir klappt es! Schau auch mal hier ab 3:40! Vielleicht hilft es weiter...
Dateianhänge
Daten einlesen mit RStudio...
Daten einlesen mit RStudio...
Viele Grüße,
Student
-----------------------------------------------------------------------------------------------------------------------
faes.de, Datenanalyse mit R & das Ad-Oculos-Projekt
Das Ad-Oculos-Projekt auf YouTube

Habe Mut, dich deines eigenen Verstandes zu bedienen! (Kant)
bigben
Beiträge: 2780
Registriert: Mi Okt 12, 2016 9:09 am

Re: Erstellen neuer Variablen in R

Beitrag von bigben »

Code: Alles auswählen

hend <- read.csv2("http://forum.r-statistik.de/download/file.php?id=978")
str(hend)
hend$Mittelwert <- rowMeans(hend[,c("StrongMixed", "NotTorn", "Indecisive")])
plot(table(hend$Mittelwert))
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
jogo
Beiträge: 2086
Registriert: Fr Okt 07, 2016 8:25 am

Re: Erstellen neuer Variablen in R

Beitrag von jogo »

oh, da war ein Fehler drin.
Gottchen hat geschrieben: Sa Mai 16, 2020 8:34 pm
...

Hey Jörg,
habe das bei mir in R eingegeben und es kommt leider kein Ergebnis raus. Siehe oben, habe ich eine dazugehörige csv-Datei mit dem kompletten Datensatz angehangen.

Code: Alles auswählen

StrongMixed <- "3 3 1 -2 2 1 2 -1 2 -3 2 -1 -1 0 0 0 2 -2 2 0 1 -2 1 1 3 0 0 2 -1 1 -1 0 1 1 3 -1 -3 -3 -1 3 0 -1 -2 -1 -1 1 -1 -3 -1 3 1 2 2 1 -3 3 0 2 0 2 2 3 1 0 1 0 -1 2 2 1 -2 -1 -1 1 -2 2 3 0 1 0 -2 3 1 2 -2 -2 2 3"
NotTorn <- "-3 3 -2 2 2 3 2 -2 2 3 1 -1 -1 -1 0 -2 2 -2 2 2 2 1 3 -1 -1 -2 -2 -3 0 1 -1 2 3 1 1 -2 -3 3 -1 -3 -2 -2 -2 -2 -1 1 -1 -3 -1 0 3 2 2 -1 -3 0 2 1 -1 -1 -2 1 1 -2 -2 -1 1 1 -2 2 -3 -1 -1 2 -3 2 0 -1 2 0 -3 -3 -2 -2 -3 -2 -3 3"
Indecisive <- "-3 3 -1 -3 1 1 1 1 1 -1 1 0 -1 -1 0 -2 3 -2 2 2 1 0 1 2 -3 2 -2 -3 0 1 -1 2 1 NA 2 1 -3 -1 0 -3 -2 -2 -2 -2 -1 NA -1 -3 -2 -2 1 1 1 0 -3 -2 2 1 -1 -1 3 1 -1 -2 -1 -1 0 1 -3 1 -2 0 0 -1 -2 1 -2 1 -1 1 -2 -3 -1 -3 -2 -2 -3 3"

mscstart <- data.frame(
  StrongMixed=as.numeric(strsplit(StrongMixed, " ")[[1]]),
  NotTorn=as.numeric(strsplit(NotTorn, " ")[[1]]),
  Indecisive=as.numeric(strsplit(Indecisive, " ")[[1]]))
mscstart$new <- rowMeans(mscstart, na.rm=TRUE)
mscstart
Gruß, Jörg
Antworten