Seite 1 von 1

Items invertieren

Verfasst: Di Dez 12, 2017 9:25 am
von farngarten
Hallo,
gibt es eine elegante Möglichkeit Items (Likert Skala von 1 -5) zu invertieren?
Danke Gruß Martin

Re: Items invertieren

Verfasst: Di Dez 12, 2017 9:29 am
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

Re: Items invertieren

Verfasst: Di Dez 12, 2017 10:07 am
von farngarten
Ah , das is super. vielen Dank Bernhard.

grüße Martin