Summenwerte in Test

Fragen, die sich auf kein spezielles Verfahren beziehen.

Summenwerte in Test

Beitragvon lela » Mi 1. Jun 2016, 09:29

eine totale Anfängerfrage, ich bin gerade erst dabei, mir die Welt von R zu erschließen.

Ich möchte für jede Person einzeln den Summenwert eines Testes erhalten. In diesem hat jedes Item einen Wert, trifft das Item zu, erhält die Person den Wert, trifft es nicht zu, erhält sie in dem Item den Wert 0. Soweit habe ich es jetzt schon programmiert:

SRRSdamals$SR01_30r<-recode(SRRSdamals$SR01_30,"2=23;1=0")
SRRSdamals$SR01_24r<-recode(SRRSdamals$SR01_24,"2=29;1=0")
SRRSdamals$SR01_08r<-recode(SRRSdamals$SR01_08,"2=47;1=0")
SRRSdamals$SR01_25r<-recode(SRRSdamals$SR01_25,"2=28;1=0")
SRRSdamals$SR01_26r<-recode(SRRSdamals$SR01_26,"2=26;1=0")
SRRSdamals$SR01_27r<-recode(SRRSdamals$SR01_27,"2=26;1=0")
SRRSdamals$SR01_09r<-recode(SRRSdamals$SR01_09,"2=45;1=0")
SRRSdamals$SR01_06r<-recode(SRRSdamals$SR01_06,"2=53;1=0")
SRRSdamals$SR01_04r<-recode(SRRSdamals$SR01_04,"2=63;1=0")
SRRSdamals$SR01_15r<-recode(SRRSdamals$SR01_15,"2=15;1=0")
SRRSdamals$SR01_20r<-recode(SRRSdamals$SR01_20,"2=31;1=0")
SRRSdamals$SR01_07r<-recode(SRRSdamals$SR01_07,"2=50;1=0")
SRRSdamals$SR01_03r<-recode(SRRSdamals$SR01_03,"2=65;1=0")
SRRSdamals$SR01_14r<-recode(SRRSdamals$SR01_14,"2=39;1=0")
SRRSdamals$SR01_02r<-recode(SRRSdamals$SR01_02,"2=73;1=0")
SRRSdamals$SR01_12r<-recode(SRRSdamals$SR01_12,"2=40;1=0")
SRRSdamals$SR01_13r<-recode(SRRSdamals$SR01_13,"2=39;1=0")
SRRSdamals$SR01_01r<-recode(SRRSdamals$SR01_01,"2=100;1=0")
SRRSdamals$SR01_17r<-recode(SRRSdamals$SR01_17,"2=37;1=0")
SRRSdamals$SR01_05r<-recode(SRRSdamals$SR01_05,"2=63;1=0")
SRRSdamals$SR01_31r<-recode(SRRSdamals$SR01_31,"2=20;1=0")
SRRSdamals$SR01_16r<-recode(SRRSdamals$SR01_16,"2=38;1=0")
SRRSdamals$SR01_11r<-recode(SRRSdamals$SR01_11,"2=44;1=0")
SRRSdamals$SR01_29r<-recode(SRRSdamals$SR01_29,"2=24;1=0")
SRRSdamals$SR01_40r<-recode(SRRSdamals$SR01_40,"2=15;1=0")
SRRSdamals$SR01_18r<-recode(SRRSdamals$SR01_18,"2=36;1=0")
SRRSdamals$SR01_28r<-recode(SRRSdamals$SR01_28,"2=25;1=0")
SRRSdamals$SR01_38r<-recode(SRRSdamals$SR01_38,"2=16;1=0")
SRRSdamals$SR01_19r<-recode(SRRSdamals$SR01_19,"2=35;1=0")
SRRSdamals$SR01_22r<-recode(SRRSdamals$SR01_22,"2=29;1=0")
SRRSdamals$SR01_32r<-recode(SRRSdamals$SR01_32,"2=20;1=0")
SRRSdamals$SR01_39r<-recode(SRRSdamals$SR01_39,"2=15;1=0")
SRRSdamals$SR01_34r<-recode(SRRSdamals$SR01_34,"2=19;1=0")
SRRSdamals$SR01_33r<-recode(SRRSdamals$SR01_33,"2=20;1=0")
SRRSdamals$SR01_35r<-recode(SRRSdamals$SR01_35,"2=19;1=0")
SRRSdamals$SR01_36r<-recode(SRRSdamals$SR01_36,"2=18;1=0")
SRRSdamals$SR01_23r<-recode(SRRSdamals$SR01_23,"2=29;1=0")
SRRSdamals$SR01_37r<-recode(SRRSdamals$SR01_37,"2=17;1=0")
SRRSdamals$SR01_10r<-recode(SRRSdamals$SR01_10,"2=45;1=0")
SRRSdamals$SR01_21r<-recode(SRRSdamals$SR01_21,"2=30;1=0")

dann habe ich aus dem ursprünglichen Test (SRRSdamals) das Subset mit den richtig kodierten Werten angelegt:
SRRSdamalsreduz<-subset(SRRSdamals,select = SR01_30r:SR01_21r)

Über die sum oder mean-funktion erhalte ich immer den Fehler:
Warning message:
In mean.default(SRRSdamalsreduz, na.rm = TRUE) :
argument is not numeric or logical: returning NA

Was bedeutet das "nicht numerisch"? wie kann ich meine werte ins numerische bekommen?


vielen dank für eure hilfe!
liebe grüße, lela
lela
Grünschnabel
Grünschnabel
 
Beiträge: 4
Registriert: Mi 1. Jun 2016, 09:20
Danke gegeben: 1
Danke bekommen: 0 mal in 0 Post

Re: Summenwerte in Test

Beitragvon strukturmarionette » Mi 1. Jun 2016, 11:30

Hi,

die Problematik erübrigt sich, wenn Du vorgehst per Dialogfelder
\\SPSS\Transformieren\Var berechnen
- dann die Zahl(en) vergeben unter Zuhilfenahme der Falls-Bedingung

Gruß
S.
strukturmarionette
Schlaflos in Seattle
Schlaflos in Seattle
 
Beiträge: 4356
Registriert: Fr 17. Jun 2011, 22:15
Danke gegeben: 32
Danke bekommen: 587 mal in 584 Posts

Re: Summenwerte in Test

Beitragvon lela » Mi 1. Jun 2016, 11:43

meinst du, ich muss mit SPSS arbeiten? das habe ich leider nicht und kann leider nicht soviel mit den befehlen anfangen... tut mir leid aber danke trotzdem!
lela
Grünschnabel
Grünschnabel
 
Beiträge: 4
Registriert: Mi 1. Jun 2016, 09:20
Danke gegeben: 1
Danke bekommen: 0 mal in 0 Post

Re: Summenwerte in Test

Beitragvon bele » Mi 1. Jun 2016, 12:54

Hallo lela,

nein, Du musst nicht auf SPSS umsteigen. Ich weiß zwar noch nicht, was Du genau machen willst, aber die Chancen sind gut, dass R das kann. Ich verstehe leider nicht, was Du da machst. Die Funktion recode() kennt mein R nicht:
Code: Alles auswählen
> help(recode)
No documentation for ‘recode’ in specified packages and libraries:
you could try ‘??recode’

Hast Du damit Probleme, dann solltest Du wenigstens angeben, aus welchem Package die stammt. Ohne Kenntnis dieser Funktion bleibt natürlich auch unklar, was der Code oben macht. Funktioniert denn dieser Teil oder funktioniert der schon nicht? Wenn der nicht funktioniert, was funktioniert dann nicht?

Nur die wichtigen Daten in SRRSdamalsreduz zusammenzufassen, erscheint vernünftig. Wenn Du wissen willst, ob dieser Dataframe nicht-numerische Spalten enthält hilft folgendes:
Code: Alles auswählen
str(SRRSdamalsreduz)

Poste bitte mal die Antwort von R auf dieses Kommando.
Am besten zusätzlich noch
Code: Alles auswählen
head(SRRSdamalsreduz, 15)

summary(SRRSdamalsreduz)


Eine Fehlermeldung wie die oben ist nur sinnvoll in Verbindung mit dem genauen Aufruf, der zu dieser Fehlermeldung führt und der Struktur der aufgerufenen Daten.

LG,
Bernhard
----
`Oh, you can't help that,' said the Cat: `we're all mad here. I'm mad. You're mad.'
`How do you know I'm mad?' said Alice.
`You must be,' said the Cat, `or you wouldn't have come here.'
(Lewis Carol, Alice in Wonderland)
bele
Schlaflos in Seattle
Schlaflos in Seattle
 
Beiträge: 5928
Registriert: Do 2. Jun 2011, 23:16
Danke gegeben: 16
Danke bekommen: 1403 mal in 1389 Posts

Re: Summenwerte in Test

Beitragvon lela » Mi 1. Jun 2016, 13:38

vielen dank für die antwort, bernhard. die antwort von r auf den von dir genannten befehl lautet:
'data.frame': 87 obs. of 40 variables:
$ SR01_30r: Factor w/ 4 levels "","0","23","F": 1 1 2 2 1 1 1 1 1 1 ...
$ SR01_24r: Factor w/ 4 levels "","0","29","F": 1 1 2 2 1 1 1 1 1 1 ...
$ SR01_08r: Factor w/ 4 levels "","0","47","F": 1 1 2 2 1 1 1 1 1 1 ...
$ SR01_25r: Factor w/ 5 levels "","0","28","F",..: 1 1 2 2 1 1 1 1 1 1 ...
$ SR01_26r: Factor w/ 4 levels "","0","26","F": 1 1 2 2 1 1 1 1 1 1 ...
$ SR01_27r: Factor w/ 5 levels "","0","26","F",..: 1 1 2 2 1 1 1 1 1 1 ...
$ SR01_09r: Factor w/ 3 levels "","0","F": 1 1 2 2 1 1 1 1 1 1 ...
$ SR01_06r: Factor w/ 5 levels "","0","53","F",..: 1 1 2 2 1 1 1 1 1 1 ...
$ SR01_04r: Factor w/ 3 levels "","0","F": 1 1 2 2 1 1 1 1 1 1 ...
$ SR01_15r: Factor w/ 4 levels "","0","15","F": 1 1 2 2 1 1 1 1 1 1 ...
$ SR01_20r: Factor w/ 4 levels "","0","31","F": 1 1 2 2 1 1 1 1 1 1 ...
$ SR01_07r: Factor w/ 4 levels "","0","50","F": 1 1 2 2 1 1 1 1 1 1 ...
$ SR01_03r: Factor w/ 3 levels "","0","F": 1 1 2 2 1 1 1 1 1 1 ...
$ SR01_14r: Factor w/ 4 levels "","0","39","F": 1 1 2 2 1 1 1 1 1 1 ...
$ SR01_02r: Factor w/ 4 levels "","0","73","F": 1 1 2 2 1 1 1 1 1 1 ...
$ SR01_12r: Factor w/ 4 levels "","0","40","F": 1 1 2 2 1 1 1 1 1 1 ...
$ SR01_13r: Factor w/ 4 levels "","0","39","F": 1 1 3 2 1 1 1 1 1 1 ...
$ SR01_01r: Factor w/ 3 levels "","0","F": 1 1 2 2 1 1 1 1 1 1 ...
$ SR01_17r: Factor w/ 4 levels "","0","37","F": 1 1 2 2 1 1 1 1 1 1 ...
$ SR01_05r: Factor w/ 4 levels "","0","63","F": 1 1 2 2 1 1 1 1 1 1 ...
$ SR01_31r: Factor w/ 5 levels "","0","20","F",..: 1 1 3 2 1 1 1 1 1 1 ...
$ SR01_16r: Factor w/ 5 levels "","0","38","F",..: 1 1 3 2 1 1 1 1 1 1 ...
$ SR01_11r: Factor w/ 4 levels "","0","44","F": 1 1 2 2 1 1 1 1 1 1 ...
$ SR01_29r: Factor w/ 4 levels "","0","24","T": 1 1 3 2 1 1 1 1 1 1 ...
$ SR01_40r: Factor w/ 5 levels "","0","15","F",..: 1 1 3 2 1 1 1 1 1 1 ...
$ SR01_18r: Factor w/ 5 levels "","0","36","F",..: 1 1 2 2 1 1 1 1 1 1 ...
$ SR01_28r: Factor w/ 5 levels "","0","25","F",..: 1 1 2 2 1 1 1 1 1 1 ...
$ SR01_38r: Factor w/ 5 levels "","0","16","F",..: 1 1 2 2 1 1 1 1 1 1 ...
$ SR01_19r: Factor w/ 4 levels "","0","35","F": 1 1 2 2 1 1 1 1 1 1 ...
$ SR01_22r: Factor w/ 5 levels "","0","29","F",..: 1 1 2 2 1 1 1 1 1 1 ...
$ SR01_32r: Factor w/ 5 levels "","0","20","F",..: 1 1 2 2 1 1 1 1 1 1 ...
$ SR01_39r: Factor w/ 4 levels "","0","15","F": 1 1 2 2 1 1 1 1 1 1 ...
$ SR01_34r: Factor w/ 5 levels "","0","19","F",..: 1 1 3 2 1 1 1 1 1 1 ...
$ SR01_33r: Factor w/ 5 levels "","0","20","F",..: 1 1 2 2 1 1 1 1 1 1 ...
$ SR01_35r: Factor w/ 4 levels "","0","19","F": 1 1 2 2 1 1 1 1 1 1 ...
$ SR01_36r: Factor w/ 5 levels "","0","18","F",..: 1 1 2 2 1 1 1 1 1 1 ...
$ SR01_23r: Factor w/ 4 levels "","0","29","F": 1 1 2 2 1 1 1 1 1 1 ...
$ SR01_37r: Factor w/ 3 levels "","0","F": 1 1 2 2 1 1 1 1 1 1 ...
$ SR01_10r: Factor w/ 3 levels "","0","F": 1 1 2 2 1 1 1 1 1 1 ...
$ SR01_21r: Factor w/ 4 levels "","0","30","F": 1 1 2 2 1 1 1 1 1 1 ...

ansonsten gibt "recode" den items einen anderen wert (ich wollte, dass die items, die bejaht wurden nicht mehr alle den wert "2" annehmen, sondern jeweils einzelne Werte haben, die dann am ende für jede person addiert werden. sprich: aus den werten des fragebogens für jede persoon wird dann weitergerechnet. ist das verständlich? und man benötigt das "car" Paket dafür.

Liebe Grüße!
lela
Grünschnabel
Grünschnabel
 
Beiträge: 4
Registriert: Mi 1. Jun 2016, 09:20
Danke gegeben: 1
Danke bekommen: 0 mal in 0 Post

Re: Summenwerte in Test

Beitragvon bele » Mi 1. Jun 2016, 16:55

Hallo lela,

Du hast einen Dataframe mit 40 "Faktoren". "Factor" bedeutet in R, dass die Variable nominales Skalenniveau hat. Aus diesem Grund weigert R sich auch, einen Durchschnitt oder eine Summe zu berechnen. Mögliche Werte bei Deinen nominalen Ergebnissen lauten "" (der leere String), "F" oder eben Zahlen, die aber Namen von ordinalen Stufen sind.

{car} gehört nicht zum normalen Lieferumfang von R und auch im Package Hmisc gibt es eine Funktion recode, da kann man schon mal dazu sagen, was man verwendet. Offensichtlich verwendest Du es aber falsch, denn bei Dir soll sicher nicht "F" als Ergebnis herauskommen. Die "Bedienungsanleitung" zu car findet man unter anderem hier: https://cran.r-project.org/web/packages/car/car.pdf
Dort steht unter anderem
If no specification is satisfied, then the input value is carried over
to the result.

Wenn also in SRRSdamals irgendwelche anderen Werte als "1" oder "2" drin stehen, dann werden die in SRRSdamalsreduz übernommen. Wenn aber ein "" oder ein "F" übernommen wird, dann ist natürlich mit Mittelwert berechnen nichts drin.

Primär musst Du Dir also SRRSdamals genauer anschauen, bis Du dessen Codierung richtig verstanden hast. Dazu gehört auch die Frage, ob SRRSdamals characters oder factors beinhaltest. Aber das hast Du ja schon gelernt, wie man das prüft. Danach solltest Du Dir die Bedeutung des Schlüsselwortes 'else' in car::recode anschauen und das Argument 'as.numeric.result'.

LG,
Bernhard
----
`Oh, you can't help that,' said the Cat: `we're all mad here. I'm mad. You're mad.'
`How do you know I'm mad?' said Alice.
`You must be,' said the Cat, `or you wouldn't have come here.'
(Lewis Carol, Alice in Wonderland)
bele
Schlaflos in Seattle
Schlaflos in Seattle
 
Beiträge: 5928
Registriert: Do 2. Jun 2011, 23:16
Danke gegeben: 16
Danke bekommen: 1403 mal in 1389 Posts

folgende User möchten sich bei bele bedanken:
lela

Re: Summenwerte in Test

Beitragvon lela » Do 2. Jun 2016, 09:31

hallo bernhard,
danke für deine antwort. jetzt habe ich sie auch verstanden (wie gesagt, ich brauche für das alles hier noch etwas länger ;) )
du hast recht: das problem liegt darin, dass meine daten nicht numerisch sind und das brauche ich auf jeden fall für die berechnung. ich werde mich jetz tin diese richtung informieren, falls du noch einen tipp hast, nehme ich ihn dankend an.

aber auf jeden fall auch schon bis hier: vielen dank!
LG lela
lela
Grünschnabel
Grünschnabel
 
Beiträge: 4
Registriert: Mi 1. Jun 2016, 09:20
Danke gegeben: 1
Danke bekommen: 0 mal in 0 Post

Re: Summenwerte in Test

Beitragvon bele » Do 2. Jun 2016, 11:52

Hallo lela,

das braucht am Anfang Zeit. Drei Tipps habe ich:

1. Versuche nicht, gleich alle 40 Spalten zu erschlagen. Probiere mit einer und zwei Spalten so lange, bis es klappt, dann kannst Du es auf die anderen 38 ausweiten.

2. Beschäftige Dich mit den Datentypen in R und benutze str() häufig. Immer, wenn es ein Problem gibt, willst Du str() konsultieren! Die Mühe, sich mit dem factor-Konzept in R eingehend zu beschäftigen. Das zahlt sich immer wieder aus.

3. Ich habe mal einige Sachen in einem anderen Forum zusammengefasst. Ich glaube, das könnte Dir jetzt helfen: http://forum.r-statistik.de/viewtopic.p ... 813#p16347

LG,
Bernhard
----
`Oh, you can't help that,' said the Cat: `we're all mad here. I'm mad. You're mad.'
`How do you know I'm mad?' said Alice.
`You must be,' said the Cat, `or you wouldn't have come here.'
(Lewis Carol, Alice in Wonderland)
bele
Schlaflos in Seattle
Schlaflos in Seattle
 
Beiträge: 5928
Registriert: Do 2. Jun 2011, 23:16
Danke gegeben: 16
Danke bekommen: 1403 mal in 1389 Posts


Zurück zu Allgemeine Fragen

Wer ist online?

Mitglieder in diesem Forum: Bing [Bot] und 4 Gäste