Hi Rich, Thank you for your answer. The sentences are strings (likert scale: 'the situation is highly applicable to me' etc - in Dutch), or column labels; it may be confusing as it is in Dutch. Below I show you part of the dataframe with my annotation added (string/column lable) to give you an idea. I need to change the likert strings into numeric (1:5). And this is a challenge somehow. With dplyr, plyr it did not work. After I have the numeric version then I can stack them as suggested by David. PART OF THE DATAFRAME>> >>>> > `Ik volg bijscholing om mijn opleiders-kwaliteiten op peil te >> >>>> > houden` COLUMN LABEL >> >>>> > >> >>>> > <chr> >> >>>> > >> >>>> > 1 de situatie in hoge mate van toepassing is voor u of uw >> >>>> > supervisorengroep LIKERT STRING >> >>>> > 2 de situatie in zeer hoge mate van toepassing is voor u of uw >> >>>> > supervisorengroep LIKERT STRING >> >>>> > 3 de situatie in zeer hoge mate van toepassing is voor u of uw >> >>>> > supervisorengroep LIKERT STRING >> >>>> > 4 de situatie in geringe mate van toepassing is voor u of uw >> >>>> > supervisorengroep LIKERT STRING >> >>>> > `Ik weet precies wat de ?modernisering van de opleiding?inhoudt` COLUMN LABEL>> >>>> > >> >>>> > <chr> >> >>>> > >> >>>> > 1 de situatie in hoge mate van toepassing is voor u of uw >> >>>> > supervisorengroep LIKERT STRING >> >>>> > 2 de situatie in zeer hoge mate van toepassing is voor u of uw >> >>>> > supervisorengroep LIKERT STRING >> >>>> > 3 de situatie in zeer hoge mate van toepassing is voor u of uw >> >>>> > supervisorengroep LIKERT STRING >> >>>> > 4 de situatie in geringe mate van toepassing is voor u of uw >> >>>> > supervisorengroep LIKERT STRINGOp wo 31 okt. 2018 om 20:28 schreef Richard M. Heiberger <rmh at temple.edu>:> What you sent looks like a set of column labels, not the actual numeric > data. > > You might want to convert them to factors where you control the order > of the levels. > > Factor.wrong <- factor(c("mm", "cm", "m", "km")) > > levels(Factor.wrong) ## alphabetical order, not meaning order > [1] "cm" "km" "m" "mm" > > > > Factor.right <- factor(c("mm", "cm", "m", "km"), > + levels=c("mm", "cm", "m", "km")) > > levels(Factor.right) ## meaning order > [1] "mm" "cm" "m" "km" > > Or you might want to construct a matrix of counts of your data and plot > that. > > Rich > > > On Wed, Oct 31, 2018 at 1:53 PM, P. Roberto Bakker > <robertobakker at gmail.com> wrote: > > This is part of the output text > > > > "de situatie in hoge mate van toepassing is voor u of uw > supervisorengroep", STRING > > "de situatie in hoge mate van toepassing is voor u of uw > supervisorengroep", STRING > > "de situatie enigszins van toepassing is voor u of uw > supervisorengroep", STRING > > "de situatie in hoge mate van toepassing is voor u of uw > supervisorengroep" STRINK > > ), `Ik waardeer de inbreng van de aios in de afdelingsvergadering` > COLUMN LABEL= c("de > > situatie in hoge mate van toepassing is voor u of uw supervisorengroep", > STRING > > "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 at 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 at 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 at temple.edu>: > >> >> > >> >> Please send me the > >> >> dput(teamq) > >> >> > >> >> > >> >> On Wed, Oct 31, 2018 at 03:51 P. Roberto Bakker > >> >> <robertobakker at 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 at 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 at 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 at 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 at r-project.org> On Behalf Of P. > >> >>>> >> Roberto > >> >>>> >> Bakker > >> >>>> >> Sent: Monday, October 22, 2018 9:04 AM > >> >>>> >> To: R mailing list <r-help at 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 at 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 at 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]]
Hi Roberto,
Here is a snippet of code that translates the text responses of the
BIS-11 into numeric values. Note the reversal of the order in the
second item:
BIS$Q1<-as.numeric(factor(BIS$Q1,
levels=c("Almost","Often","Occasionally","Rarely/Never")))
BIS$Q2<-as.numeric(factor(BIS$Q2,
levels=c("Rarely/Never","Occasionally","Often","Almost")))
...
Jim
On Thu, Nov 1, 2018 at 8:57 AM P. Roberto Bakker
<robertobakker at gmail.com> wrote:>
> Hi Rich,
>
> Thank you for your answer.
> The sentences are strings (likert scale: 'the situation is highly
> applicable to me' etc - in Dutch), or column labels; it may be
confusing as
> it is in Dutch. Below I show you part of the dataframe with my annotation
> added (string/column lable) to give you an idea.
> I need to change the likert strings into numeric (1:5). And this is a
> challenge somehow.
> With dplyr, plyr it did not work.
> After I have the numeric version then I can stack them as suggested by
> David.
>
Hi Jim, Thank you. An additional question: as I have many columns to change in numeric, and the columns are long sentences, what is an efficient way to do this? I checked in StackOverflow but could not find the right answer Best Roberto Op do 1 nov. 2018 om 00:25 schreef Jim Lemon <drjimlemon at gmail.com>:> Hi Roberto, > Here is a snippet of code that translates the text responses of the > BIS-11 into numeric values. Note the reversal of the order in the > second item: > > BIS$Q1<-as.numeric(factor(BIS$Q1, > levels=c("Almost","Often","Occasionally","Rarely/Never"))) > BIS$Q2<-as.numeric(factor(BIS$Q2, > levels=c("Rarely/Never","Occasionally","Often","Almost"))) > ... > > Jim > On Thu, Nov 1, 2018 at 8:57 AM P. Roberto Bakker > <robertobakker at gmail.com> wrote: > > > > Hi Rich, > > > > Thank you for your answer. > > The sentences are strings (likert scale: 'the situation is highly > > applicable to me' etc - in Dutch), or column labels; it may be confusing > as > > it is in Dutch. Below I show you part of the dataframe with my annotation > > added (string/column lable) to give you an idea. > > I need to change the likert strings into numeric (1:5). And this is a > > challenge somehow. > > With dplyr, plyr it did not work. > > After I have the numeric version then I can stack them as suggested by > > David. > > >[[alternative HTML version deleted]]
Richard M. Heiberger
2018-Nov-01 22:42 UTC
[R] Different stack barplots - same color legends
## reminder on how the levels= argument to factor works
mydata <- matrix(1:8, nrow=4, ncol=2, dimnames=list(letters[1:4],
LETTERS[1:2]))
dput(mydata)
Factor.wrong <- factor(c("mm", "cm", "m",
"km"))
levels(Factor.wrong) ## alphabetical order, not meaning order
Factor.right <- factor(c("mm", "cm", "m",
"km"),
levels=c("mm", "cm", "m",
"km"))
levels(Factor.right) ## meaning order
library(HH) ## for the likert function
## dput(teamq[1:10,7:8])
teamq10x78 <-
structure(list(`Ik volg bijscholing om mijn opleiders-kwaliteiten op
peil te houden` = 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 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 zeer 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",
"de situatie in zeer hoge mate van toepassing is voor u of uw
supervisorengroep"
), `Ik weet precies wat de ?modernisering van de opleiding? inhoudt` 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 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 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"
)), row.names = c(NA, -10L), class = c("tbl_df", "tbl",
"data.frame"
))
## This is from Google translate
## Ik weet precies wat de ?modernisering van de opleiding? inhoudt
## I know exactly what the "modernization of the training"
## Ik volg bijscholing om mijn opleiders-kwaliteiten op peil te houden
## I follow training to keep my grades at level trainers
## ## This is your order of levels from Mon, Oct 22, 2018 at 1:30 PM
## "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"
## ## This is from Google translate
## the situation very little applies to you or your group supervisor
## the situation slightly applies to you or your group supervisor
## the situation somewhat applies to you or your group supervisor
## the situation is highly applicable to you or your group supervisor
## the situation very largely applies to you or your group supervisor
sapply(teamq10x78, table)
likert(t(sapply(teamq10x78, table)))
likert(t(sapply(teamq10x78, table)),
auto.key=list(columns=1, border=TRUE),
main="character values are sorted alphabetically, we will use
factors in the next figure")
object.size(teamq10x78)
## more rows
object.size(rbind(teamq10x78,teamq10x78,teamq10x78,teamq10x78,teamq10x78,
teamq10x78,teamq10x78,teamq10x78,teamq10x78,teamq10x78,
teamq10x78,teamq10x78,teamq10x78,teamq10x78,teamq10x78,
teamq10x78,teamq10x78,teamq10x78,teamq10x78,teamq10x78))
situatie.levels <- 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")
teamf <- tibble::as.tibble(
lapply(teamq10x78,
function(x, levels) factor(x, levels=levels),
levels=situatie.levels)
)
names(teamf) <- names(teamq10x78) ## lapply replaced space and quote
characters with "."
## and each column is a factor with properly ordered labels.
sapply(teamf, class)
sapply(teamf, levels) ## all five levels appear even though this
example observed only four
object.size(teamf) ## bigger here
## significantly smaller for more rows
object.size(rbind(teamf,teamf,teamf,teamf,teamf,
teamf,teamf,teamf,teamf,teamf,
teamf,teamf,teamf,teamf,teamf,
teamf,teamf,teamf,teamf,teamf))
sapply(teamf, table) ## these are the counts of responses by question
likert(t(sapply(teamf, table)),
auto.key=list(columns=1, border=TRUE),
main="the middle group enigszins is by default split equally
between negative and positive")
likert(t(sapply(teamf, table)),
auto.key=list(columns=1, border=TRUE),
main="based on your color scheme, I am putting enigszins on the
negative side",
ReferenceZero=3.5,
col=c("yellow","sandybrown","orange",
"darkolivegreen","green"))
## I am adding a third question with some "zeer geringe" values
teamf[,"Extra Question"] <- teamf[,2]
teamf[1:2, 3] <- situatie.levels[1]
likert(t(sapply(teamf, table)),
auto.key=list(columns=1, border=TRUE),
main="based on your color scheme, I am putting enigszins on the
negative side",
ReferenceZero=3.5,
col=c("yellow","sandybrown","orange",
"darkolivegreen","green"))
## I find the color scheme unsatisfactory.
## The break point between sandybrown and orange is not distinct.
## I would prefer a darker green on the right side.
## try
RColorBrewer::display.brewer.all()
## and see if sny of them work for you.
display.brewer.pal(6, "RdYlGn")
RYG5 <- brewer.pal(6, "RdYlGn")[-4]
likert(t(sapply(teamf, table)),
auto.key=list(columns=1, border=TRUE),
main="based on your color scheme, I am putting enigszins on the
negative side",
ReferenceZero=3.5,
col=RYG5)
On Wed, Oct 31, 2018 at 5:56 PM, P. Roberto Bakker
<robertobakker at gmail.com> wrote:> Hi Rich,
>
> Thank you for your answer.
> The sentences are strings (likert scale: 'the situation is highly
applicable
> to me' etc - in Dutch), or column labels; it may be confusing as it is
in
> Dutch. Below I show you part of the dataframe with my annotation added
> (string/column lable) to give you an idea.
> I need to change the likert strings into numeric (1:5). And this is a
> challenge somehow.
> With dplyr, plyr it did not work.
> After I have the numeric version then I can stack them as suggested by
> David.
>
> PART OF THE DATAFRAME
>>> >>>> > `Ik volg bijscholing om mijn
opleiders-kwaliteiten op peil te
>>> >>>> > houden` COLUMN LABEL
>>> >>>> >
>>> >>>> > <chr>
>>> >>>> >
>>> >>>> > 1 de situatie in hoge mate van toepassing is
voor u of uw
>>> >>>> > supervisorengroep LIKERT STRING
>>> >>>> > 2 de situatie in zeer hoge mate van
toepassing is voor u of uw
>>> >>>> > supervisorengroep LIKERT STRING
>>> >>>> > 3 de situatie in zeer hoge mate van
toepassing is voor u of uw
>>> >>>> > supervisorengroep LIKERT STRING
>>> >>>> > 4 de situatie in geringe mate van toepassing
is voor u of uw
>>> >>>> > supervisorengroep LIKERT STRING
>>> >>>> > `Ik weet precies wat de ?modernisering van
de opleiding?
>>> >>>> > inhoudt` COLUMN LABEL
>>> >>>> >
>>> >>>> > <chr>
>>> >>>> >
>>> >>>> > 1 de situatie in hoge mate van toepassing is
voor u of uw
>>> >>>> > supervisorengroep LIKERT STRING
>>> >>>> > 2 de situatie in zeer hoge mate van
toepassing is voor u of uw
>>> >>>> > supervisorengroep LIKERT STRING
>>> >>>> > 3 de situatie in zeer hoge mate van
toepassing is voor u of uw
>>> >>>> > supervisorengroep LIKERT STRING
>>> >>>> > 4 de situatie in geringe mate van toepassing
is voor u of uw
>>> >>>> > supervisorengroep LIKERT STRING
>
>
>
> Op wo 31 okt. 2018 om 20:28 schreef Richard M. Heiberger <rmh at
temple.edu>:
>>
>> What you sent looks like a set of column labels, not the actual numeric
>> data.
>>
>> You might want to convert them to factors where you control the order
>> of the levels.
>> > Factor.wrong <- factor(c("mm", "cm",
"m", "km"))
>> > levels(Factor.wrong) ## alphabetical order, not meaning order
>> [1] "cm" "km" "m" "mm"
>> >
>> > Factor.right <- factor(c("mm", "cm",
"m", "km"),
>> + levels=c("mm", "cm",
"m", "km"))
>> > levels(Factor.right) ## meaning order
>> [1] "mm" "cm" "m" "km"
>>
>> Or you might want to construct a matrix of counts of your data and plot
>> that.
>>
>> Rich
>>
>>
>> On Wed, Oct 31, 2018 at 1:53 PM, P. Roberto Bakker
>> <robertobakker at gmail.com> wrote:
>> > This is part of the output text
>> >
>> > "de situatie in hoge mate van toepassing is voor u of uw
>> > supervisorengroep", STRING
>> > "de situatie in hoge mate van toepassing is voor u of uw
>> > supervisorengroep", STRING
>> > "de situatie enigszins van toepassing is voor u of uw
>> > supervisorengroep", STRING
>> > "de situatie in hoge mate van toepassing is voor u of uw
>> > supervisorengroep" STRINK
>> > ), `Ik waardeer de inbreng van de aios in de afdelingsvergadering`
>> > COLUMN LABEL= c("de
>> > situatie in hoge mate van toepassing is voor u of uw
supervisorengroep",
>> > STRING
>>
>> > "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 at 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 at 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 at temple.edu>:
>> >> >>
>> >> >> Please send me the
>> >> >> dput(teamq)
>> >> >>
>> >> >>
>> >> >> On Wed, Oct 31, 2018 at 03:51 P. Roberto Bakker
>> >> >> <robertobakker at 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 at 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 at 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 at 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 at
r-project.org> On Behalf Of P.
>> >> >>>> >> Roberto
>> >> >>>> >> Bakker
>> >> >>>> >> Sent: Monday, October 22, 2018 9:04
AM
>> >> >>>> >> To: R mailing list <r-help at
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 at 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 at 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.
Dear Richard, Thank you so much for all your work and time you punt in it. I will start with your suggestions and let you know how far I come. Also thanks to the others who helpt me. Best Roberto Op do 1 nov. 2018 om 23:42 schreef Richard M. Heiberger <rmh at temple.edu>:> ## reminder on how the levels= argument to factor works > > mydata <- matrix(1:8, nrow=4, ncol=2, dimnames=list(letters[1:4], > LETTERS[1:2])) > dput(mydata) > > Factor.wrong <- factor(c("mm", "cm", "m", "km")) > levels(Factor.wrong) ## alphabetical order, not meaning order > > Factor.right <- factor(c("mm", "cm", "m", "km"), > levels=c("mm", "cm", "m", "km")) > levels(Factor.right) ## meaning order > > > > library(HH) ## for the likert function > > ## dput(teamq[1:10,7:8]) > teamq10x78 <- > structure(list(`Ik volg bijscholing om mijn opleiders-kwaliteiten op > peil te houden` = 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 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 zeer 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", > "de situatie in zeer hoge mate van toepassing is voor u of uw > supervisorengroep" > ), `Ik weet precies wat de ?modernisering van de opleiding? inhoudt` > 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 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 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" > )), row.names = c(NA, -10L), class = c("tbl_df", "tbl", "data.frame" > )) > > > ## This is from Google translate > > ## Ik weet precies wat de ?modernisering van de opleiding? inhoudt > ## I know exactly what the "modernization of the training" > > ## Ik volg bijscholing om mijn opleiders-kwaliteiten op peil te houden > ## I follow training to keep my grades at level trainers > > > ## ## This is your order of levels from Mon, Oct 22, 2018 at 1:30 PM > ## "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" > > ## ## This is from Google translate > ## the situation very little applies to you or your group supervisor > ## the situation slightly applies to you or your group supervisor > ## the situation somewhat applies to you or your group supervisor > ## the situation is highly applicable to you or your group supervisor > ## the situation very largely applies to you or your group supervisor > > > > sapply(teamq10x78, table) > likert(t(sapply(teamq10x78, table))) > likert(t(sapply(teamq10x78, table)), > auto.key=list(columns=1, border=TRUE), > main="character values are sorted alphabetically, we will use > factors in the next figure") > > object.size(teamq10x78) > ## more rows > object.size(rbind(teamq10x78,teamq10x78,teamq10x78,teamq10x78,teamq10x78, > teamq10x78,teamq10x78,teamq10x78,teamq10x78,teamq10x78, > teamq10x78,teamq10x78,teamq10x78,teamq10x78,teamq10x78, > teamq10x78,teamq10x78,teamq10x78,teamq10x78,teamq10x78)) > > situatie.levels <- 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") > > teamf <- tibble::as.tibble( > lapply(teamq10x78, > function(x, levels) factor(x, levels=levels), > levels=situatie.levels) > ) > names(teamf) <- names(teamq10x78) ## lapply replaced space and quote > characters with "." > ## and each column is a factor with properly ordered labels. > sapply(teamf, class) > sapply(teamf, levels) ## all five levels appear even though this > example observed only four > > object.size(teamf) ## bigger here > ## significantly smaller for more rows > object.size(rbind(teamf,teamf,teamf,teamf,teamf, > teamf,teamf,teamf,teamf,teamf, > teamf,teamf,teamf,teamf,teamf, > teamf,teamf,teamf,teamf,teamf)) > > sapply(teamf, table) ## these are the counts of responses by question > > likert(t(sapply(teamf, table)), > auto.key=list(columns=1, border=TRUE), > main="the middle group enigszins is by default split equally > between negative and positive") > > likert(t(sapply(teamf, table)), > auto.key=list(columns=1, border=TRUE), > main="based on your color scheme, I am putting enigszins on the > negative side", > ReferenceZero=3.5, > col=c("yellow","sandybrown","orange", "darkolivegreen","green")) > > > ## I am adding a third question with some "zeer geringe" values > > teamf[,"Extra Question"] <- teamf[,2] > teamf[1:2, 3] <- situatie.levels[1] > > likert(t(sapply(teamf, table)), > auto.key=list(columns=1, border=TRUE), > main="based on your color scheme, I am putting enigszins on the > negative side", > ReferenceZero=3.5, > col=c("yellow","sandybrown","orange", "darkolivegreen","green")) > > > ## I find the color scheme unsatisfactory. > ## The break point between sandybrown and orange is not distinct. > ## I would prefer a darker green on the right side. > ## try > RColorBrewer::display.brewer.all() > ## and see if sny of them work for you. > > display.brewer.pal(6, "RdYlGn") > > RYG5 <- brewer.pal(6, "RdYlGn")[-4] > > likert(t(sapply(teamf, table)), > auto.key=list(columns=1, border=TRUE), > main="based on your color scheme, I am putting enigszins on the > negative side", > ReferenceZero=3.5, > col=RYG5) > > > > On Wed, Oct 31, 2018 at 5:56 PM, P. Roberto Bakker > <robertobakker at gmail.com> wrote: > > Hi Rich, > > > > Thank you for your answer. > > The sentences are strings (likert scale: 'the situation is highly > applicable > > to me' etc - in Dutch), or column labels; it may be confusing as it is in > > Dutch. Below I show you part of the dataframe with my annotation added > > (string/column lable) to give you an idea. > > I need to change the likert strings into numeric (1:5). And this is a > > challenge somehow. > > With dplyr, plyr it did not work. > > After I have the numeric version then I can stack them as suggested by > > David. > > > > PART OF THE DATAFRAME > >>> >>>> > `Ik volg bijscholing om mijn opleiders-kwaliteiten op peil te > >>> >>>> > houden` COLUMN LABEL > >>> >>>> > > >>> >>>> > <chr> > >>> >>>> > > >>> >>>> > 1 de situatie in hoge mate van toepassing is voor u of uw > >>> >>>> > supervisorengroep LIKERT STRING > >>> >>>> > 2 de situatie in zeer hoge mate van toepassing is voor u of uw > >>> >>>> > supervisorengroep LIKERT STRING > >>> >>>> > 3 de situatie in zeer hoge mate van toepassing is voor u of uw > >>> >>>> > supervisorengroep LIKERT STRING > >>> >>>> > 4 de situatie in geringe mate van toepassing is voor u of uw > >>> >>>> > supervisorengroep LIKERT STRING > >>> >>>> > `Ik weet precies wat de ?modernisering van de opleiding? > >>> >>>> > inhoudt` COLUMN LABEL > >>> >>>> > > >>> >>>> > <chr> > >>> >>>> > > >>> >>>> > 1 de situatie in hoge mate van toepassing is voor u of uw > >>> >>>> > supervisorengroep LIKERT STRING > >>> >>>> > 2 de situatie in zeer hoge mate van toepassing is voor u of uw > >>> >>>> > supervisorengroep LIKERT STRING > >>> >>>> > 3 de situatie in zeer hoge mate van toepassing is voor u of uw > >>> >>>> > supervisorengroep LIKERT STRING > >>> >>>> > 4 de situatie in geringe mate van toepassing is voor u of uw > >>> >>>> > supervisorengroep LIKERT STRING > > > > > > > > Op wo 31 okt. 2018 om 20:28 schreef Richard M. Heiberger <rmh at temple.edu > >: > >> > >> What you sent looks like a set of column labels, not the actual numeric > >> data. > >> > >> You might want to convert them to factors where you control the order > >> of the levels. > >> > Factor.wrong <- factor(c("mm", "cm", "m", "km")) > >> > levels(Factor.wrong) ## alphabetical order, not meaning order > >> [1] "cm" "km" "m" "mm" > >> > > >> > Factor.right <- factor(c("mm", "cm", "m", "km"), > >> + levels=c("mm", "cm", "m", "km")) > >> > levels(Factor.right) ## meaning order > >> [1] "mm" "cm" "m" "km" > >> > >> Or you might want to construct a matrix of counts of your data and plot > >> that. > >> > >> Rich > >> > >> > >> On Wed, Oct 31, 2018 at 1:53 PM, P. Roberto Bakker > >> <robertobakker at gmail.com> wrote: > >> > This is part of the output text > >> > > >> > "de situatie in hoge mate van toepassing is voor u of uw > >> > supervisorengroep", STRING > >> > "de situatie in hoge mate van toepassing is voor u of uw > >> > supervisorengroep", STRING > >> > "de situatie enigszins van toepassing is voor u of uw > >> > supervisorengroep", STRING > >> > "de situatie in hoge mate van toepassing is voor u of uw > >> > supervisorengroep" STRINK > >> > ), `Ik waardeer de inbreng van de aios in de afdelingsvergadering` > >> > COLUMN LABEL= c("de > >> > situatie in hoge mate van toepassing is voor u of uw > supervisorengroep", > >> > STRING > >> > >> > "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 at 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 at 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 at temple.edu>: > >> >> >> > >> >> >> Please send me the > >> >> >> dput(teamq) > >> >> >> > >> >> >> > >> >> >> On Wed, Oct 31, 2018 at 03:51 P. Roberto Bakker > >> >> >> <robertobakker at 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 at 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 at 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 at 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 at r-project.org> On Behalf Of P. > >> >> >>>> >> Roberto > >> >> >>>> >> Bakker > >> >> >>>> >> Sent: Monday, October 22, 2018 9:04 AM > >> >> >>>> >> To: R mailing list <r-help at 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 at 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 at 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]]
Thank you Op do 1 nov. 2018 om 00:25 schreef Jim Lemon <drjimlemon at gmail.com>:> Hi Roberto, > Here is a snippet of code that translates the text responses of the > BIS-11 into numeric values. Note the reversal of the order in the > second item: > > BIS$Q1<-as.numeric(factor(BIS$Q1, > levels=c("Almost","Often","Occasionally","Rarely/Never"))) > BIS$Q2<-as.numeric(factor(BIS$Q2, > levels=c("Rarely/Never","Occasionally","Often","Almost"))) > ... > > Jim > On Thu, Nov 1, 2018 at 8:57 AM P. Roberto Bakker > <robertobakker at gmail.com> wrote: > > > > Hi Rich, > > > > Thank you for your answer. > > The sentences are strings (likert scale: 'the situation is highly > > applicable to me' etc - in Dutch), or column labels; it may be confusing > as > > it is in Dutch. Below I show you part of the dataframe with my annotation > > added (string/column lable) to give you an idea. > > I need to change the likert strings into numeric (1:5). And this is a > > challenge somehow. > > With dplyr, plyr it did not work. > > After I have the numeric version then I can stack them as suggested by > > David. > > >[[alternative HTML version deleted]]