Items invertieren

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

Moderatoren: EDi, jogo

Antworten
farngarten
Beiträge: 78
Registriert: Fr Dez 08, 2017 6:42 am

Items invertieren

Beitrag von farngarten »

Hallo,
gibt es eine elegante Möglichkeit Items (Likert Skala von 1 -5) zu invertieren?
Danke Gruß Martin
bigben
Beiträge: 2771
Registriert: Mi Okt 12, 2016 9:09 am

Re: Items invertieren

Beitrag von bigben »

Hallo!
Man kann zum Beispiel den Skalenwert von 6 abziehen.

6 - 1 = 5
6 - 2 = 4
usw
6 - 5 = 1

Eleganter wäre es natürlich noch, dafür eine Funktion zu schreiben. Etwa so:

Code: Alles auswählen

invertItem <- function(items, maxvalue = 5, minvalue = 1){
  if(!is.numeric(items)) stop("items must be numeric!")
  if(!is.numeric(maxvalue)) stop("maxvalue must be numeric!")
  if(!is.numeric(minvalue)) stop("minvalue must be numeric!")
  if(minvalue >= maxvalue) warning("Warning in invertItem: minvalue >= maxvalue")
  return((maxvalue+minvalue) - items)
}
funktioniert so:

Code: Alles auswählen

> invertItem(c(1, 2, 3, 4, 5))
[1] 5 4 3 2 1
> invertItem(c(1, 2, 3, 4, 5, 6), maxvalue = 6)
[1] 6 5 4 3 2 1
> invertItem(-3:3, 3, -3)
[1]  3  2  1  0 -1 -2 -3
> invertItem("A", "B", "C")
Error in invertItem("A", "B", "C") : items must be numeric!
> invertItem(c(1,5,NA, NA, Inf, -Inf, NaN))
[1]    5    1   NA   NA -Inf  Inf  NaN
Noch eleganter wäre es, einige Tests für diese Funktion zu schreiben, so dass man sich bei zukünftigen Änderungen daran schnell der korrekten Ergebnisse vergewissern kann. Aber das wäre vielleicht ein bisschen viel Eleganz, für die einfache Aufgabe.

LG,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
farngarten
Beiträge: 78
Registriert: Fr Dez 08, 2017 6:42 am

Re: Items invertieren

Beitrag von farngarten »

Ah , das is super. vielen Dank Bernhard.

grüße Martin
Antworten