Seite 1 von 1

Likert Skala

Verfasst: Di Jun 22, 2021 7:22 pm
von miraculeux
Hallo!

Ich bitte um Hilfe bezüglich einer Auswertung einer Erhebung.
Ich habe mehrere Items, die ich mit der Describe-Funktion untersuchen möchte (Mittelwert, Standartabweichung).

Die Items wurden anhand der Likert-Skala von 1 (trifft voll zu) bis 5 (tritt nicht zu) beantwortet, allerdings ist auch 0 (nicht angekreuzt) und 6 (weiß nicht) vorhanden. Ich möchte nicht händisch die Zahlen 0 und 6 aus meiner Excel-Tabelle löschen, da es sich um einen sehr großen Datensatz (500 Personen) handelt. Wie kann ich den Datensatz in R so filtern, dass die Zahlen 0 und 6 durch NA ersetzt werden?

Vielen Dank im Voraus!

Re: Likert Skala

Verfasst: Di Jun 22, 2021 8:47 pm
von schubbiaschwilli
Gude!

Nehmen wir mal an, du hast einen Dataframe - Probier' mal:

Code: Alles auswählen

data <- data.frame(i=-1:10)

subset(data, data$i>0 & data$i<6)

subset(data, data$i<=0 | data$i>=6)
Frage an die Runde: Gibt's da sowas wie 'in'?

Dank&Gruß
Schubbiaschwilli

Re: Likert Skala

Verfasst: Di Jun 22, 2021 9:21 pm
von EDi
Oder so:

Code: Alles auswählen

data <- data.frame(i=-1:10, j = 10:-1) 
data[data == 6 | data == 0] <- NA
data

Re: Likert Skala

Verfasst: Mi Jul 07, 2021 5:33 pm
von bigben
schubbiaschwilli hat geschrieben: Di Jun 22, 2021 8:47 pmFrage an die Runde: Gibt's da sowas wie 'in'?
Gibt's:

Code: Alles auswählen

data <- data.frame(i=-1:10)
subset(data, i %in% 1:5)
oder auch

Code: Alles auswählen

data <- data.frame(i=-1:10)
library(sqldf)
sqldf("SELECT * FROM data WHERE i BETWEEN 1 AND 5;")
LG,
Bernhard

Re: Likert Skala

Verfasst: Mi Jul 07, 2021 5:56 pm
von schubbiaschwilli
Gude!

Code: Alles auswählen

subset(data, i %in% 1:5)
Das gefällt mir sehr gut - Es ist halt auch schwer, Begriffe wie 'in' zu suchen, da zu viel false positive.
Das sqldf-Paket kenne ich auch und habe es auch schon genutzt, aber ich möchte nicht für jede einzelne Zeile ein neues Paket einbinden.

Dank&Gruß
Schubbiaschwilli

Re: Likert Skala

Verfasst: Mi Jul 07, 2021 6:10 pm
von bigben
Hallo schubbiaschwilli,

das "%in%" funktioniert halt nur mit diskreten Werten und ich wollte gerne was lesbares für Fließkommazahlen dazu schreiben. Du hast natürlich Recht, dass kein vernünftiger Mensch das so machen würde. Vielleicht wäre es sinnvoll, sich eine Einzeiler-Funktion zu schreiben.

Code: Alles auswählen

data <- data.frame(i=-1:10)

contained_in <- function(x, min, max) min <= x & x <= max
subset(data, contained_in(i, 1, 5))
(Das ist ein unbefriedigendes Beispiel, weil es "==" auf Fließkommazahlen anwendet.)

LG,
Bernhard