likert Package

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

likert Package

reichmaj
R- Help Forum

 

Working with the "likert" package and I can't figure out why my "bar" graphs
are backwards (see attached). The percentages are place correctly but the
bars are backwards.

 

#Sample code

# libraries

library(likert)

 

# create data

band <- c("Band 3","Band 3","Band 3","Band 3","Band 3","Band 3","Band
3","Band 3","Band 3","Band 3",

          "Band 4","Band 4","Band 4","Band 4","Band 4","Band 4","Band
4","Band 4","Band 4","Band 4")

q1 <- factor(c(1,1,2,2,2,2,1,1,1,2,1,1,1,1,1,3,2,1,1,1),levels =
c("1","2","3"))

q2 <- factor(c(1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1),levels =
c("1","2","3"))

q3 <- factor(c(2,2,2,2,2,2,2,2,2,2,1,3,2,2,2,2,2,2,2,2),levels =
c("1","2","3"))

q4 <- factor(c(3,3,3,3,3,3,3,3,2,1,2,2,3,3,3,3,3,3,3,3),levels =
c("1","2","3"))

q5 <- factor(c(2,2,2,2,3,1,1,2,2,2,2,3,3,3,3,3,3,1,1,3),levels =
c("1","2","3"))

 

df <- data.frame(band,q1,q2,q3,q4,q5)

 

summary(df)

results <- likert(df[,2:6])

summary(results)

 

# bar plot, this plots correctly

plot(results, type="bar")

 

# group by 'Band Level', this plots the bars backwards

results <- likert(df[,2:6], grouping = df$band)

plot(results, type = "bar", centered = FALSE, group.order = c("Band 3",
"Band 4"))

 


______________________________________________
[hidden email] mailing list -- To UNSUBSCRIBE and more, see
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Figure.png (21K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: likert Package

Jeff Newmiller
Please don't start a new thread with the same question. My usual suggestion at this point would be for you to respond to the answers that have already been posted to your last question, but I think at this point that you need to correspond directly with the maintainer of the likert package.
--
Sent from my phone. Please excuse my brevity.

On August 23, 2017 6:38:26 PM PDT, Jeff Reichman  <[hidden email]> wrote:

>R- Help Forum
>
>
>
>Working with the "likert" package and I can't figure out why my "bar"
>graphs
>are backwards (see attached). The percentages are place correctly but
>the
>bars are backwards.
>
>
>
>#Sample code
>
># libraries
>
>library(likert)
>
>
>
># create data
>
>band <- c("Band 3","Band 3","Band 3","Band 3","Band 3","Band 3","Band
>3","Band 3","Band 3","Band 3",
>
>          "Band 4","Band 4","Band 4","Band 4","Band 4","Band 4","Band
>4","Band 4","Band 4","Band 4")
>
>q1 <- factor(c(1,1,2,2,2,2,1,1,1,2,1,1,1,1,1,3,2,1,1,1),levels =
>c("1","2","3"))
>
>q2 <- factor(c(1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1),levels =
>c("1","2","3"))
>
>q3 <- factor(c(2,2,2,2,2,2,2,2,2,2,1,3,2,2,2,2,2,2,2,2),levels =
>c("1","2","3"))
>
>q4 <- factor(c(3,3,3,3,3,3,3,3,2,1,2,2,3,3,3,3,3,3,3,3),levels =
>c("1","2","3"))
>
>q5 <- factor(c(2,2,2,2,3,1,1,2,2,2,2,3,3,3,3,3,3,1,1,3),levels =
>c("1","2","3"))
>
>
>
>df <- data.frame(band,q1,q2,q3,q4,q5)
>
>
>
>summary(df)
>
>results <- likert(df[,2:6])
>
>summary(results)
>
>
>
># bar plot, this plots correctly
>
>plot(results, type="bar")
>
>
>
># group by 'Band Level', this plots the bars backwards
>
>results <- likert(df[,2:6], grouping = df$band)
>
>plot(results, type = "bar", centered = FALSE, group.order = c("Band 3",
>"Band 4"))
>
>

______________________________________________
[hidden email] mailing list -- To UNSUBSCRIBE and more, see
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.
Reply | Threaded
Open this post in threaded view
|

Re: likert Package

Richard M. Heiberger
In reply to this post by reichmaj
## There is a bug in likert:::plot.likert.
## The centered argument is not handled correctly.
## In addition to centering, it also flips the order.
## Here it is:

likert:::plot.likert(results, type = "bar", centered = TRUE,  ## correct order
                     group.order = c("Band 3", "Band 4"))
likert:::plot.likert(results, type = "bar", centered = FALSE, ## wrong order
                     group.order = c("Band 3", "Band 4"))

## I am including the maintainer of the likert package in the cc for
this response.


## In the meantime, you can get the picture you want from the likert
## plot in the HH package.
##
## install.packages("HH") ## if you don't have HH yet.
##
## this uses the same colors as the likert:::plot.likert function.
## See ?likert.options for details
lpl.col <- c(low.color = "#D8B365", neutral.color = "grey90",
high.color = "#5AB4AC")
HH::plot.likert(results, col=lpl.col,
                main="equivalent to 'centered=TRUE' with different layout")
HH::plot.likert(results, col=lpl.col, ReferenceZero=0,
                main="equivalent to 'centered=FALSE' with different layout")

## HH::plot.likert defaults to a different layout than likert::plot.likert
## this makes the necessary changes to get the intended plot
results.renamed <- results
names(results.renamed[[1]])[1:2] <- names(results[[1]])[2:1]


HH::plot.likert(results.renamed, col=lpl.col,                  layout=c(1, 5),
                main="equivalent to 'centered=TRUE'")
HH::plot.likert(results.renamed, col=lpl.col, ReferenceZero=0, layout=c(1, 5),
                main="equivalent to 'centered=FALSE'")



## for completeness, this is how to get the intended plot directly
from the HH package

df2 <- reshape2::melt(df, id.vars="band")
df3 <- aggregate(factor(value) ~ band + variable, data=df2, FUN=table)
HH::likert(band ~ . | variable , data=df3, as.percent=TRUE, layout=c(1,5),
           col=lpl.col,
                main="equivalent to 'centered=TRUE' with different layout")
HH::likert(band ~ . | variable , data=df3, as.percent=TRUE, layout=c(1,5),
           col=lpl.col, ReferenceZero=0,
                main="equivalent to 'centered=FALSE' with different layout")

On Wed, Aug 23, 2017 at 9:38 PM, Jeff Reichman <[hidden email]> wrote:

> R- Help Forum
>
>
>
> Working with the "likert" package and I can't figure out why my "bar" graphs
> are backwards (see attached). The percentages are place correctly but the
> bars are backwards.
>
>
>
> #Sample code
>
> # libraries
>
> library(likert)
>
>
>
> # create data
>
> band <- c("Band 3","Band 3","Band 3","Band 3","Band 3","Band 3","Band
> 3","Band 3","Band 3","Band 3",
>
>           "Band 4","Band 4","Band 4","Band 4","Band 4","Band 4","Band
> 4","Band 4","Band 4","Band 4")
>
> q1 <- factor(c(1,1,2,2,2,2,1,1,1,2,1,1,1,1,1,3,2,1,1,1),levels =
> c("1","2","3"))
>
> q2 <- factor(c(1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1),levels =
> c("1","2","3"))
>
> q3 <- factor(c(2,2,2,2,2,2,2,2,2,2,1,3,2,2,2,2,2,2,2,2),levels =
> c("1","2","3"))
>
> q4 <- factor(c(3,3,3,3,3,3,3,3,2,1,2,2,3,3,3,3,3,3,3,3),levels =
> c("1","2","3"))
>
> q5 <- factor(c(2,2,2,2,3,1,1,2,2,2,2,3,3,3,3,3,3,1,1,3),levels =
> c("1","2","3"))
>
>
>
> df <- data.frame(band,q1,q2,q3,q4,q5)
>
>
>
> summary(df)
>
> results <- likert(df[,2:6])
>
> summary(results)
>
>
>
> # bar plot, this plots correctly
>
> plot(results, type="bar")
>
>
>
> # group by 'Band Level', this plots the bars backwards
>
> results <- likert(df[,2:6], grouping = df$band)
>
> plot(results, type = "bar", centered = FALSE, group.order = c("Band 3",
> "Band 4"))
>
>
>
>
> ______________________________________________
> [hidden email] mailing list -- To UNSUBSCRIBE and more, see
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.

______________________________________________
[hidden email] mailing list -- To UNSUBSCRIBE and more, see
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.