Seite 1 von 3

Erstellen neuer Variablen in R

Verfasst: Sa Mai 16, 2020 7:23 pm
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?

Re: Erstellen neuer Variablen in R

Verfasst: Sa Mai 16, 2020 7:33 pm
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

Re: Erstellen neuer Variablen in R

Verfasst: Sa Mai 16, 2020 7:46 pm
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)?

Re: Erstellen neuer Variablen in R

Verfasst: Sa Mai 16, 2020 7:57 pm
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

Re: Erstellen neuer Variablen in R

Verfasst: Sa Mai 16, 2020 8:01 pm
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 :)

Re: Erstellen neuer Variablen in R

Verfasst: Sa Mai 16, 2020 8:02 pm
von Gottchen
Das hier wäre die komplette csv-Datei.

Re: Erstellen neuer Variablen in R

Verfasst: Sa Mai 16, 2020 8:34 pm
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.

Re: Erstellen neuer Variablen in R

Verfasst: Sa Mai 16, 2020 8:56 pm
von student
Hallo Gottchen,

bei mir klappt es! Schau auch mal hier ab 3:40! Vielleicht hilft es weiter...

Re: Erstellen neuer Variablen in R

Verfasst: Sa Mai 16, 2020 9:02 pm
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))

Re: Erstellen neuer Variablen in R

Verfasst: Sa Mai 16, 2020 9:03 pm
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