2014-11-21 4 views
2

Я хотел бы использовать пакет Likert, а также группировать по переменной и отображать результат. Проблема в том, что у меня разные уровни в переменных, которые я хочу визуализировать. Есть ли способ обойти это ?Группировка Likert с различными уровнями в R

Простой пример, чтобы проиллюстрировать мою проблему:

library(reshape) 
library(likert) 

foo <- data.frame(car = rep(c("Toyota", "BMW", "Ford"), times = 10), 
        satisfaction = c(1,3,4,7,7,6,2,3,5,5,5,2,4,1,7), 
        quality = c(1,1,3,5,4,3,6,4,3,6,6,1,7,2,7), 
        loyalty = c(1,1,3,5,4,3,9,4,3,10,6,1,7,2,8)) 

foo[1:4] <- lapply(foo[1:4], as.factor) 

likt <- likert(foo[,c(2:4)], grouping = foo$car) 
plot(likt) 

сообщение об ошибке:

Error in likert(foo[, c(2:4)], grouping = foo$car) : 
    All items (columns) must have the same number of levels 

ответ

3

То же, что первый ответ, но теперь в зависимости от группы

foo[2:4] <- lapply(foo[2:4], factor, levels=1:10) 
likt <- likert(foo[,c(2:4)], grouping = foo$car) 
plot(likt) 
..

Fig

0

ваших базовых уровней в действительности же, вы просто должны сказать свой кадр данных, что они существуют:

foo[2:4] <- lapply(foo[2:4], factor, levels=1:9) 

Тогда вы можете построить. (Но как grouping argumnent работы остается загадкой - это не ясно из помощью этого пакета

likt <- likert(foo[,c(2:4)]) 
plot(likt) 

enter image description here

+0

В руководстве CRAN есть аргумент под названием «nlevels», который, похоже, выполняет ту же работу. Но я не мог найти способ правильно его использовать. Этот ответ - путь. – jazzurro

+0

Отличный !! Спасибо! – jonas

+0

@ Andri. Очень полезно! Не должно быть уровней уровней = 1: 10? Я думаю, что добавление переменной группировки также работает: likt <- likert (foo [, c (2: 4)], grouping = foo $ car). –

1

Ну я не могу добавить комментарий, пока не получите больше очков репутации, поэтому я Разорвать «в ответ на дру эр ответы»руководство - но я не хотел бы другие R новички вроде меня тратить время я просто выясняя, что линия в первоначальный вопрос:

library(reshape) 

Перерывы ответ предоставляется Ruthger.

Таким образом, код, который нужно генерировать участок Ruthger является просто (я проверил это с R 3.3.1, имеющие следовать инструкциям по установке Лайкерта в нижней части https://github.com/jbryer/likert):

library(likert) 

foo <- data.frame(car = rep(c("Toyota", "BMW", "Ford"), times = 10), 
        satisfaction = c(1,3,4,7,7,6,2,3,5,5,5,2,4,1,7), 
        quality = c(1,1,3,5,4,3,6,4,3,6,6,1,7,2,7), 
        loyalty = c(1,1,3,5,4,3,9,4,3,10,6,1,7,2,8)) 

foo[2:4] <- lapply(foo[2:4], factor, levels=1:10) 
likt <- likert(foo[,c(2:4)], grouping = foo$car) 
plot(likt) 
Смежные вопросы