Matchen von Rohdaten mit Lösungen und T-Werten

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

Moderatoren: EDi, jogo

Antworten
Ahabsfriend

Matchen von Rohdaten mit Lösungen und T-Werten

Beitrag von Ahabsfriend »

Hallo liebes Forum,

ich habe folgenden Code erstellt. Er soll die Rohdaten eines Tests mit den richtigen Lösungen vergleichen und codieren. Danach sollen die Werte aufsummiert werden. Das klappt alles.

Code: Alles auswählen

KFT <- X2017_05_30_Kontrollvariablen_7[1:53, c(1, 9:33)] # Aus dem Datensatz die Spalten (1+9-33) auswählen
sc <- score(KFT[2:26],KFT_7_Lsg,ID = FALSE, output.scored = FALSE))   # Vergleich Spalten Datensazt mit Loesungen
tt <- KFT_7_Testwert
Dann sollen die summierten Rohwerte den T-Werten des Testinstruments zu geordnet werden.

Code: Alles auswählen

p <- as.numeric(sc$score)

# Von innen nach außen:
#    tt[,1]  := wählt die erste Spalte der Zuordnungstabelle
#    match() := Gibt für jeden Wert in x aus, an welcher Position von table dieser zu finden ist. Das Ergebnis ist also ein Vektor mit Positionen.
#    Das Ergebnis von match wird dann genutzt, um die richtigen Zeilen in tt auszuwählen. Die Syntax (tt[match(x = sc, table tt[,1]), 2]) soll aber nur den #    zweiten Wert ausgeben

tt[match(x = p, table = tt[,1]),2]
Leider stehen aber nicht die T-Werte am Ende in tt, sonder nur "NA".

Wo liegt der Fehler? Für eure Hilfe bin ich dankbar!
jogo
Beiträge: 2085
Registriert: Fr Okt 07, 2016 8:25 am

Re: Matchen von Rohdaten mit Lösungen und T-Werten

Beitrag von jogo »

Hallo Ahabsfriend,

willkommen im Forum!
Ahabsfriend hat geschrieben: Mi Mai 31, 2017 9:32 pm

Code: Alles auswählen

p <- as.numeric(sc$score)

# Von innen nach außen:
#    tt[,1]  := wählt die erste Spalte der Zuordnungstabelle
#    match() := Gibt für jeden Wert in x aus, an welcher Position von table dieser zu finden ist. Das Ergebnis ist also ein Vektor mit Positionen.
#    Das Ergebnis von match wird dann genutzt, um die richtigen Zeilen in tt auszuwählen. Die Syntax (tt[match(x = sc, table tt[,1]), 2]) soll aber nur den #    zweiten Wert ausgeben

tt[match(x = p, table = tt[,1]),2]
Leider stehen aber nicht die T-Werte am Ende in tt, sonder nur "NA".

Wo liegt der Fehler? Für eure Hilfe bin ich dankbar!
So ganz ohne Daten ist das schwer zu sagen. Bitte poste doch mal die Ergebnisse von:

Code: Alles auswählen

str(p)
str(tt[,1:2])
p[1:20]
head(tt[,1:2], 20)
Gruß, Jörg
Ahabsfriend

Re: Matchen von Rohdaten mit Lösungen und T-Werten

Beitrag von Ahabsfriend »

Hallo Jörg,

vielen Dank für die schnelle Antwort. Durch deine Anfrage bin ich auf die Lösung gekommen.
Die Funktion score() aus dem Paket CTT hat das Problem verursacht. Der str() ergab das hier:

Code: Alles auswählen

> str(sc)
List of 1
 $ score: Named num [1:53] 15 13 25 22 18 22 16 15 9 20 ...
  ..- attr(*, "names")= chr [1:53] "P1" "P2" "P3" "P4" ...
Ich dachte es wird ein data.frame ausgegeben. Es wurde aber eine eine list ausgegeben. Und die hat eine Beschreibung der Zeilen.

Mit:

Code: Alles auswählen

KFT_Tval <- (tt[match(x = sc$score, table = tt[,1]),2])
konnte ich das Problem lösen. Es musste folglich eine explizite Spalte angewiesen werden, was durch die Zeilenbeschreibung nötigt wurde. Ohne diese Anweisung funktioniert die Zuweisung nicht.

Vielen Dank für die Hilfe!
Antworten