[R] Different stack barplots - same color legends

P. Roberto Bakker robertob@kker @end|ng |rom gm@||@com
Wed Oct 31 18:53:51 CET 2018


This is part of the output text

"de situatie in hoge mate van toepassing is voor u of uw
supervisorengroep",
"de situatie in hoge mate van toepassing is voor u of uw
supervisorengroep",
"de situatie enigszins van toepassing is voor u of uw supervisorengroep",
"de situatie in hoge mate van toepassing is voor u of uw supervisorengroep"
), `Ik waardeer de inbreng van de aios in de afdelingsvergadering` = c("de
situatie in hoge mate van toepassing is voor u of uw supervisorengroep",
"de situatie in hoge mate van toepassing is voor u of uw
supervisorengroep",
"de situatie in zeer hoge mate van toepassing is voor u of uw
supervisorengroep",
"de situatie in zeer hoge mate van toepassing is voor u of uw
supervisorengroep",
"de situatie enigszins van toepassing is voor u of uw supervisorengroep",
"de situatie in zeer hoge mate van toepassing is voor u of uw
supervisorengroep",
"de situatie in zeer hoge mate van toepassing is voor u of uw
supervisorengroep",
"de situatie in zeer hoge mate van toepassing is voor u of uw
supervisorengroep",
"de situatie enigszins van toepassing is voor u of uw supervisorengroep",
"de situatie in hoge mate van toepassing is voor u of uw
supervisorengroep",
"de situatie in hoge mate van toepassing is voor u of uw
supervisorengroep",
"de situatie in hoge mate van toepassing is voor u of uw
supervisorengroep",

Op wo 31 okt. 2018 om 16:24 schreef Richard M. Heiberger <rmh using temple.edu>:

> part is fine.  just be sure that the small part causes the problem.
> I will need that to investigate what is happening.
>
>
> On Wed, Oct 31, 2018 at 11:15 AM, P. Roberto Bakker
> <robertobakker using gmail.com> wrote:
> > It is a very long result text. I can send it to you, or is part of it
> ok?[
> >
> > Op wo 31 okt. 2018 om 14:27 schreef Richard M. Heiberger <rmh using temple.edu
> >:
> >>
> >> Please send me the
> >> dput(teamq)
> >>
> >>
> >> On Wed, Oct 31, 2018 at 03:51 P. Roberto Bakker <
> robertobakker using gmail.com>
> >> wrote:
> >>>
> >>> Thank you for you information. Package 'HH' is interesting.
> >>>
> >>> Now I find another problem when using 'likert(teamq)'
> >>> I get an error message:
> >>> > likert(teamq)
> >>> Error in dimnames(x) <- `*vtmp*` :
> >>>   length of 'dimnames' [2] not equal to array extent
> >>>
> >>> I checked:
> >>> > dim(teamq)
> >>> [1] 4 2
> >>> > ncol(teamq)
> >>> [1] 2
> >>> So it should be good.
> >>>
> >>> I used 'make.names' , in case the spaces in the variable names would
> be a
> >>> problem.
> >>> Same error.
> >>>
> >>> What could I do?
> >>>
> >>> Best and thank you in advance.
> >>> Roberto
> >>>
> >>>
> >>> Op ma 22 okt. 2018 om 20:10 schreef Richard M. Heiberger
> >>> <rmh using temple.edu>:
> >>>>
> >>>> Try the likert function in
> >>>> install.packages("HH) ## if necessary
> >>>> library(HH)
> >>>>
> >>>> Then using David Carlson's example teamq
> >>>> likert(teamq)
> >>>>
> >>>> Your example in the 1:30PM (Eastern Daylight Time) doesn't work.
> >>>> Error in revalue(teamq, c(`de situatie in zeer geringe mate van
> >>>> toepassing is\nvoor u of uw supervisorengroep` = "1",  :
> >>>>   x is not a factor or a character vector.
> >>>>
> >>>> There are many examples in
> >>>> ?likert
> >>>>
> >>>> Rich
> >>>>
> >>>>
> >>>> On Mon, Oct 22, 2018 at 1:30 PM, P. Roberto Bakker
> >>>> <robertobakker using gmail.com> wrote:
> >>>> > Dear David,
> >>>> >
> >>>> > Thank you for you quite response.
> >>>> > My apologies for not giving some sample data - this is due to AVG.
> >>>> > *But this minisample should not be a problem (all in Dutch)*:
> >>>> >  teamq
> >>>> > # A tibble: 4 x 2
> >>>> >   `Ik volg bijscholing om mijn opleiders-kwaliteiten op peil te
> >>>> > houden`
> >>>> >
> >>>> >   <chr>
> >>>> >
> >>>> > 1 de situatie in hoge mate van toepassing is voor u of uw
> >>>> > supervisorengroep
> >>>> > 2 de situatie in zeer hoge mate van toepassing is voor u of uw
> >>>> > supervisorengroep
> >>>> > 3 de situatie in zeer hoge mate van toepassing is voor u of uw
> >>>> > supervisorengroep
> >>>> > 4 de situatie in geringe mate van toepassing is voor u of uw
> >>>> > supervisorengroep
> >>>> >   `Ik weet precies wat de ‘modernisering van de opleiding’ inhoudt`
> >>>> >
> >>>> >   <chr>
> >>>> >
> >>>> > 1 de situatie in hoge mate van toepassing is voor u of uw
> >>>> > supervisorengroep
> >>>> > 2 de situatie in zeer hoge mate van toepassing is voor u of uw
> >>>> > supervisorengroep
> >>>> > 3 de situatie in zeer hoge mate van toepassing is voor u of uw
> >>>> > supervisorengroep
> >>>> > 4 de situatie in geringe mate van toepassing is voor u of uw
> >>>> > supervisorengroep
> >>>> >
> >>>> > As you see the likert items are in words, and I should change them
> in
> >>>> > nummeric - Am I correct?
> >>>> >
> >>>> > *To do this, I tried (see further below):*
> >>>> > plyr rename() ; I receive the message it should be a factor or
> >>>> > character
> >>>> > dplyr recode() ; same message
> >>>> > mapvalues() ; it should be atomic, so I used as.atomic(teamq) but
> then
> >>>> > I
> >>>> > receive the nummers a strings.
> >>>> >
> >>>> > *The syntaxes*
> >>>> > require(plyr)
> >>>> > example2 <- revalue(teamq,
> >>>> >                     c("de situatie in zeer geringe mate van
> toepassing
> >>>> > is
> >>>> > voor u of uw supervisorengroep"= "1",
> >>>> >                         "de situatie in geringe mate van toepassing
> is
> >>>> > voor
> >>>> > u of uw supervisorengroep"= "2",
> >>>> >                         "de situatie enigszins van toepassing is
> voor
> >>>> > u of
> >>>> > uw supervisorengroep"= "3",
> >>>> >                         "de situatie in hoge mate van toepassing is
> >>>> > voor u
> >>>> > of uw supervisorengroep"= "4",
> >>>> >                         "de situatie in zeer hoge mate van
> toepassing
> >>>> > is
> >>>> > voor u of uw supervisorengroep"= "5"))
> >>>> >
> >>>> > require(dplyr)
> >>>> > example2 <- recode(teamq,
> >>>> >                     c("de situatie in zeer geringe mate van
> toepassing
> >>>> > is
> >>>> > voor u of uw supervisorengroep"= "1",
> >>>> >                       "de situatie in geringe mate van toepassing is
> >>>> > voor u
> >>>> > of uw supervisorengroep"= "2",
> >>>> >                       "de situatie enigszins van toepassing is voor
> u
> >>>> > of uw
> >>>> > supervisorengroep"= "3",
> >>>> >                       "de situatie in hoge mate van toepassing is
> voor
> >>>> > u of
> >>>> > uw supervisorengroep"= "4",
> >>>> >                       "de situatie in zeer hoge mate van toepassing
> is
> >>>> > voor
> >>>> > u of uw supervisorengroep"= "5"))
> >>>> >
> >>>> > mapvalues(as.matrix(teamq), from = c("de situatie in zeer geringe
> mate
> >>>> > van
> >>>> > toepassing is voor u of uw supervisorengroep",
> >>>> >                         "de situatie in geringe mate van toepassing
> is
> >>>> > voor
> >>>> > u of uw supervisorengroep",
> >>>> >                         "de situatie enigszins van toepassing is
> voor
> >>>> > u of
> >>>> > uw supervisorengroep",
> >>>> >                         "de situatie in hoge mate van toepassing is
> >>>> > voor u
> >>>> > of uw supervisorengroep",
> >>>> >                         "de situatie in zeer hoge mate van
> toepassing
> >>>> > is
> >>>> > voor u of uw supervisorengroep"),
> >>>> >           to = c(1,2,3,4,5))
> >>>> >
> >>>> > What should I do?
> >>>> > Thank you in advance, Roberto
> >>>> >
> >>>> > Op ma 22 okt. 2018 om 17:13 schreef David L Carlson
> >>>> > <dcarlson using tamu.edu>:
> >>>> >
> >>>> >> Your example is not reproducible since you did not give us some
> >>>> >> sample
> >>>> >> data. I suspect that your data frame consists of columns that
> >>>> >> represent
> >>>> >> questions and rows that represent individuals who answered the
> >>>> >> questions.
> >>>> >> First create a simple example:
> >>>> >>
> >>>> >> set.seed(42)
> >>>> >> teamq <- data.frame(V1=sample(c(1, 2, 4, 5), 25, replace = TRUE),
> >>>> >>      V2=sample(c(1, 2, 3, 4, 5), 25, replace=TRUE),
> >>>> >>      V3=sample(c(2, 3, 4, 5), 25, replace=TRUE))
> >>>> >>
> >>>> >> Notice that this data frame ONLY contains questions (and only 3
> >>>> >> questions). Here are 2 ways to get what you want. The first one
> >>>> >> stacks the
> >>>> >> data:
> >>>> >>
> >>>> >> teamq.stack <- stack(teamq)
> >>>> >> str(teamq.stack)
> >>>> >> counts <- table(teamq.stack)
> >>>> >> str(counts)
> >>>> >>
> >>>> >> The second one converts each column to a factor with levels 1 - 5:
> >>>> >>
> >>>> >> teamq2 <- data.frame(lapply(teamq, factor, levels=1:5))
> >>>> >> str(teamq2)
> >>>> >> counts <- sapply(teamq2, table)
> >>>> >> str(counts)
> >>>> >>
> >>>> >> Now make the plots:
> >>>> >>
> >>>> >> cols <- c("yellow","sandybrown","orange", "darkolivegreen","green")
> >>>> >> barplot(counts[, 1], horiz=TRUE, col=cols, legend=TRUE)
> >>>> >> barplot(counts[, 2], horiz=TRUE, col=cols, legend=TRUE)
> >>>> >> barplot(counts[, 3], horiz=TRUE, col=cols, legend=TRUE)
> >>>> >>
> >>>> >> You will need to adjust the xlim= argument so that the legend does
> >>>> >> not
> >>>> >> print on top of the bars.
> >>>> >>
> >>>> >> ----------------------------------------
> >>>> >> David L Carlson
> >>>> >> Department of Anthropology
> >>>> >> Texas A&M University
> >>>> >> College Station, TX 77843-4352
> >>>> >>
> >>>> >>
> >>>> >> -----Original Message-----
> >>>> >> From: R-help <r-help-bounces using r-project.org> On Behalf Of P.
> Roberto
> >>>> >> Bakker
> >>>> >> Sent: Monday, October 22, 2018 9:04 AM
> >>>> >> To: R mailing list <r-help using r-project.org>
> >>>> >> Subject: [R] Different stack barplots - same color legends
> >>>> >>
> >>>> >> Hi,
> >>>> >>
> >>>> >> I want to make barplots from different questions (columns) in one
> >>>> >> data.frame.
> >>>> >> Each question has the same 5 likert items.
> >>>> >> Now the problem: in some questions all items are answered; in other
> >>>> >> less.
> >>>> >> From the syntax below I get nice stack barplots - *but the legend
> >>>> >> colors do
> >>>> >> not* refer to the same likert-item, which I understand - the colors
> >>>> >> go in
> >>>> >> sequence along the table.
> >>>> >> Question: how can I write a syntax that each likert-item has the
> same
> >>>> >> legend color?
> >>>> >> Thank you in advance,
> >>>> >>
> >>>> >> Roberto
> >>>> >>
> >>>> >> SYNTAX:
> >>>> >> counts19 <- table(teamq[,19])
> >>>> >> counts20 <- table(teamq[,20])
> >>>> >> barplot(as.matrix(counts19), horiz = T,
> >>>> >>         col=c("yellow","sandybrown","orange",
> >>>> >> "darkolivegreen","green"),
> >>>> >> legend=T)
> >>>> >> barplot(as.matrix(counts20), horiz = T,
> >>>> >>         col=c("yellow","sandybrown","orange",
> >>>> >> "darkolivegreen","green"),
> >>>> >> legend=T)
> >>>> >>
> >>>> >>         [[alternative HTML version deleted]]
> >>>> >>
> >>>> >> ______________________________________________
> >>>> >> R-help using r-project.org 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.
> >>>> >>
> >>>> >
> >>>> >         [[alternative HTML version deleted]]
> >>>> >
> >>>> > ______________________________________________
> >>>> > R-help using r-project.org 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.
>

	[[alternative HTML version deleted]]




More information about the R-help mailing list