R объединить точки Лайкерта - PullRequest
0 голосов
/ 24 мая 2018

У меня есть 10-балльная шкала Лайкерта, которая выглядит следующим образом:

    > head(dsidata$Mood_2)
[1] Great Great Bad   Good  Great So-so
Levels: Couldn't be worse Very bad Bad Meh So-so Okay Good Very Good Great Really great

Я хочу «объединить» категории так, чтобы число факторов сократилось до 5. Респонденты, выбравшие варианты «Не моглиХуже "или" Очень плохо "будет назначена новая категория" Очень негативно "и т. д., пока 10 факторов не уменьшатся до 5.

Любая помощь с этим очень ценится

Ответы [ 2 ]

0 голосов
/ 24 мая 2018

Я уверен, что ваша переменная классифицируется как фактор.Так что просто объедините некоторые факторы, используя этот подход.

set.seed(42)  # for reproducibility

# mimicking your data
df1 <- data.frame(var=rdunif(100, 10))
df1$var <- factor(df1$var, 1:10, labels=c("Couldn't be worse", "Very bad", 
                                        "Bad", "Meh", "So-so", "Okay",
                                        "Good", "Very Good", "Great", 
                                        "Really great"))

df1$var1 <- df1$var

# merging levels
levels(df1$var1) <- list("Very negative"=c("Couldn't be worse", "Very bad"),
                        "negative" = c("Bad", "Meh"),
                        "neutral" = c("So-so", "Okay"),
                        "positive"=c("Good", "Very Good"),
                        "very positive"=c("Great", "Really great"))

уступая

> tail(df1, 10)
                  var          var1
91           Very bad Very negative
92          Very Good      positive
93           Very bad Very negative
94           Very bad Very negative
95  Couldn't be worse Very negative
96  Couldn't be worse Very negative
97               Okay       neutral
98           Very bad Very negative
99          Very Good      positive
100         Very Good      positive
0 голосов
/ 24 мая 2018

Это зависит от вашего набора данных, но вы можете сделать:

dsidata$Mood_2_newscale <- ifelse(dsidata$Mood_2 %in% c("Couldn't be worse","Very bad"),
"Very negative",
dsidata$Mood_2)
...