Thanks again - I realized after posting that sjlabelled is indirectly referencing haven's read_sav function. For a moment I thought you were referring to the read.spss under the older foreign package. But then realized that read_sav and read_spss are equivalent. So that's clear now.
And I also realized there are so many ways to do the same thing in R - so as part of learning, I am discovering these different ways, and knowing when to use one over the other. Thanks for the references - I will read further on them. cheers, cY On Sat, Feb 8, 2020 at 10:28 AM John Kane <jrkrid...@gmail.com> wrote: > "use a different function (read_spss) as John has suggested to import the > file. " > > No! As far as I can see sjlabelled is simply using haven"s function " > read_sav()" to read in the data. It is just wrapped in the "read.spss() > function.There should be no difference between read_sav(sdata.sav) and > read_spss(sdata.sav). > > It just seems to keep the code simpler (more aesthetically pleasing?) if > you do not load more packages than needed. Likewise you do not need to load > "labels" as sjlabelledis taking care of this for you. > > Oh, BTW Scratch$sex %>% attr('labels') can be replaced by something like > get_labels(dat1) in my example. There usually are a multitude of ways to do > the same thing in R. > > You might want to have a look at > https://cran.r-project.org/web/packages/labelled/vignettes/intro_labelled.html > and https://strengejacke.github.io/sjlabelled/articles/labelleddata.html > for more about working with labels. > > On Sat, 8 Feb 2020 at 09:35, Yawo Kokuvi <yawo1...@gmail.com> wrote: > >> Thanks so much for all your assistance. I admit R's learning curve is a >> bit steep, but I am eager to learn ... and hopefully teach with it. >> >> with regard to my problem, I can now see two options: either declare >> each categorical variable as factors, specifying the needed levels and >> labels. >> >> OR >> >> use a different function (read_spss) as John has suggested to import the >> file. >> >> I will experiment with both. >> >> With much appreciation, cY >> >> On Sat, Feb 8, 2020 at 9:25 AM John Kane <jrkrid...@gmail.com> wrote: >> >>> Hi Yawo Kokuvi; >>> As an R newbie transitioning from SPSS to R expect culture shock and the >>> possible feeling that yor brain is twisting within your skull but it is >>> well worth. >>> >>> Try something like this: >>> ##+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ >>> dat1 <- structure(list(Animal = structure(c(0, 0, 0, 0, 0, 0, 0, 0, 0, >>> 0), label = "Animal", labels = c(Cat = 0, Dog = 1), class = >>> "haven_labelled"), >>> Training = structure(c(0, 0, 0, 0, 0, 0, 0, 0, 0, 0), label = "Type >>> of Training", labels = c(`Food as Reward` = 0, >>> `Affection as Reward` = 1), class = "haven_labelled"), Dance = >>> structure(c(1, >>> 1, 1, 1, 1, 1, 1, 1, 1, 1), label = "Did they dance?", labels = c(No >>> = 0, >>> Yes = 1), class = "haven_labelled")), row.names = c(NA, -10L >>> ), class = c("tbl_df", "tbl", "data.frame")) >>> >>> >>> library(sjlabelled) >>> str(dat1) >>> get_labels(dat1) >>> barplot(table(as_label(dat1$Dance))) >>> ##================================================================== >>> Your problem sees to be omitting the as_label(). >>> >>> You do not need to load "haven" >>> read_spss() in sjlabelled should do the trick. >>> >>> >>> On Sat, 8 Feb 2020 at 05:44, Rui Barradas <ruipbarra...@sapo.pt> wrote: >>> >>>> Hello, >>>> >>>> Try >>>> >>>> aux_fun <- function(x){ >>>> levels <- attr(x, "labels") >>>> factor(x, labels = names(levels), levels = levels) >>>> } >>>> >>>> newCatsDogs <- as.data.frame(lapply(CatsDogs, aux_fun)) >>>> >>>> str(newCatsDogs) >>>> #'data.frame': 10 obs. of 3 variables: >>>> # $ Animal : Factor w/ 2 levels "Cat","Dog": 1 1 1 1 1 1 1 1 1 1 >>>> # $ Training: Factor w/ 2 levels "Food as Reward",..: 1 1 1 1 1 1 1 1 1 >>>> 1 >>>> # $ Dance : Factor w/ 2 levels "No","Yes": 2 2 2 2 2 2 2 2 2 2 >>>> >>>> >>>> As for the >>>> - frequencies: ?table, ?tapply, ?aggregate, >>>> - barplots: ?barplot >>>> >>>> You can find lots and lots of examples online of both covering what >>>> seems to simple use cases. >>>> >>>> Hope this helps, >>>> >>>> Rui Barradas >>>> >>>> Às 06:03 de 08/02/20, Yawo Kokuvi escreveu: >>>> > Thanks for all. Here is output from dput. I used a different dataset >>>> > containing categorical variables since the previous one is on a >>>> different >>>> > computer. >>>> > >>>> > In the following dataset, my interest is in getting frequencies and >>>> > barplots for the two variables: Training and Dance, with value labels >>>> > displayed. >>>> > >>>> > thanks again - cY >>>> > >>>> > >>>> > ========= >>>> > dput(head(CatsDogs, n = 10)) >>>> > structure( >>>> > list( >>>> > Animal = structure( >>>> > c(0, 0, 0, 0, 0, 0, 0, 0, 0, >>>> > 0), >>>> > label = "Animal", >>>> > labels = c(Cat = 0, Dog = 1), >>>> > class = "haven_labelled" >>>> > ), >>>> > Training = structure( >>>> > c(0, 0, 0, 0, 0, 0, 0, 0, 0, 0), >>>> > label = "Type of Training", >>>> > labels = c(`Food as Reward` = 0, >>>> > `Affection as Reward` = 1), >>>> > class = "haven_labelled" >>>> > ), >>>> > Dance = structure( >>>> > c(1, >>>> > 1, 1, 1, 1, 1, 1, 1, 1, 1), >>>> > label = "Did they dance?", >>>> > labels = c(No = 0, >>>> > Yes = 1), >>>> > class = "haven_labelled" >>>> > ) >>>> > ), >>>> > row.names = c(NA,-10L), >>>> > class = c("tbl_df", "tbl", "data.frame") >>>> > ) >>>> > >>>> > >>>> > On Fri, Feb 7, 2020 at 10:14 PM Bert Gunter <bgunter.4...@gmail.com> >>>> wrote: >>>> > >>>> >> Yes. Most attachments are stripped by the server. >>>> >> >>>> >> Bert Gunter >>>> >> >>>> >> "The trouble with having an open mind is that people keep coming >>>> along and >>>> >> sticking things into it." >>>> >> -- Opus (aka Berkeley Breathed in his "Bloom County" comic strip ) >>>> >> >>>> >> >>>> >> On Fri, Feb 7, 2020 at 5:34 PM John Kane <jrkrid...@gmail.com> >>>> wrote: >>>> >> >>>> >>> Hi, >>>> >>> Could you upload some sample data in dput form? Something like >>>> >>> dput(head(Scratch, n=13)) will give us some real data to examine. >>>> Just >>>> >>> copy >>>> >>> and paste the output of dput(head(Scratch, n=13))into the email. >>>> This is >>>> >>> the best way to ensure that R-help denizens are getting the data in >>>> the >>>> >>> exact format that you have. >>>> >>> >>>> >>> On Fri, 7 Feb 2020 at 15:32, Yawo Kokuvi <yawo1...@gmail.com> >>>> wrote: >>>> >>> >>>> >>>> Thanks for all your assistance >>>> >>>> >>>> >>>> Attached please is the Rdata scratch I have been using >>>> >>>> >>>> >>>> ----------------------------------------------------- >>>> >>>> >>>> >>>>> head(Scratch, n=13) >>>> >>>> # A tibble: 13 x 6 >>>> >>>> ID marital sex race paeduc >>>> speduc >>>> >>>> <dbl> <dbl+lbl> <dbl+lbl> <dbl+lbl> <dbl+lbl> >>>> <dbl+lbl> >>>> >>>> 1 1 3 [DIVORCED] 1 [MALE] 1 [WHITE] NA >>>> NA >>>> >>>> 2 2 1 [MARRIED] 1 [MALE] 1 [WHITE] NA >>>> NA >>>> >>>> 3 3 3 [DIVORCED] 1 [MALE] 1 [WHITE] 4 >>>> NA >>>> >>>> 4 4 4 [SEPARATED] 1 [MALE] 1 [WHITE] 16 >>>> NA >>>> >>>> 5 5 3 [DIVORCED] 1 [MALE] 1 [WHITE] 18 >>>> NA >>>> >>>> 6 6 1 [MARRIED] 2 [FEMALE] 1 [WHITE] 14 >>>> 20 >>>> >>>> 7 7 1 [MARRIED] 2 [FEMALE] 2 [BLACK] NA >>>> 12 >>>> >>>> 8 8 1 [MARRIED] 2 [FEMALE] 1 [WHITE] NA >>>> 12 >>>> >>>> 9 9 3 [DIVORCED] 2 [FEMALE] 1 [WHITE] 11 >>>> NA >>>> >>>> 10 10 1 [MARRIED] 2 [FEMALE] 1 [WHITE] 16 12 >>>> >>>> 11 11 5 [NEVER MARRIED] 2 [FEMALE] 2 [BLACK] NA NA >>>> >>>> 12 12 3 [DIVORCED] 2 [FEMALE] 2 [BLACK] NA NA >>>> >>>> 13 13 3 [DIVORCED] 2 [FEMALE] 2 [BLACK] 16 NA >>>> >>>> >>>> >>>> ----------------------------------------------------- >>>> >>>> >>>> >>>> and below is my script/command file. >>>> >>>> >>>> >>>> *#1: Load library and import SPSS dataset* >>>> >>>> library(haven) >>>> >>>> Scratch <- read_sav("~/Desktop/Scratch.sav") >>>> >>>> >>>> >>>> *#2: save the dataset with a name* >>>> >>>> save(ScratchImport, file="Scratch.Rdata") >>>> >>>> >>>> >>>> *#3: install & load necessary packages for descriptive statistics* >>>> >>>> install.packages ("freqdist") >>>> >>>> library (freqdist) >>>> >>>> >>>> >>>> install.packages ("sjlabelled") >>>> >>>> library (sjlabelled) >>>> >>>> >>>> >>>> install.packages ("labelled") >>>> >>>> library (labelled) >>>> >>>> >>>> >>>> install.packages ("surveytoolbox") >>>> >>>> library (surveytoolbox) >>>> >>>> >>>> >>>> *#4: Check the value labels of gender and marital status* >>>> >>>> Scratch$sex %>% attr('labels') >>>> >>>> Scratch$marital %>% attr('labels') >>>> >>>> >>>> >>>> *#5: Frequency Distribution and BarChart for Categorical/Ordinal >>>> Level >>>> >>>> Variables such as Gender - SEX* >>>> >>>> freqdist(Scratch$sex) >>>> >>>> barplot(table(Scratch$marital)) >>>> >>>> >>>> >>>> ----------------------------------------------------- >>>> >>>> >>>> >>>> As you can see from above, I use the <haven> package to import the >>>> data >>>> >>>> from SPSS. Apparently, the haven function keeps the value labels, >>>> as >>>> >>> the >>>> >>>> attribute options in section #4 of my script shows. >>>> >>>> The problem is that when I run frequency distribution for any of >>>> the >>>> >>>> categorical variables like sex or marital status, only the numbers >>>> (1, >>>> >>> 2,) >>>> >>>> are displayed in the output. The labels (male, female) for >>>> example are >>>> >>>> not. >>>> >>>> >>>> >>>> Is there any way to force these to be shown in the output? Is >>>> there a >>>> >>>> global property that I have to set so that these value labels are >>>> >>> reliably >>>> >>>> displayed with every output? I read I can declare them as factors >>>> using >>>> >>>> the <as_factor()>, but once I do so, how do I invoke them in my >>>> >>> commands so >>>> >>>> that the value labels show... >>>> >>>> >>>> >>>> Sorry about all the noobs questions, but Ihopefully, I am able to >>>> get >>>> >>> this >>>> >>>> working. >>>> >>>> >>>> >>>> Thanks in advance. >>>> >>>> >>>> >>>> >>>> >>>> Thanks - cY >>>> >>>> >>>> >>>> >>>> >>>> On Fri, Feb 7, 2020 at 1:14 PM <cpolw...@chemo.org.uk> wrote: >>>> >>>> >>>> >>>>> I've never used it, but there is a labels function in haven... >>>> >>>>> >>>> >>>>> On 7 Feb 2020 17:05, Bert Gunter <bgunter.4...@gmail.com> wrote: >>>> >>>>> >>>> >>>>> What does your data look like after importing? -- see ?head and >>>> ?str >>>> >>> to >>>> >>>>> tell us. Show us the code that failed to provide "labels." See the >>>> >>>> posting >>>> >>>>> guide below for how to post questions that are likely to elicit >>>> >>> helpful >>>> >>>>> responses. >>>> >>>>> >>>> >>>>> I know nothing about the haven package, but see ?factor or go >>>> through >>>> >>> an >>>> >>>> R >>>> >>>>> tutorial or two to learn about factors, which may be part of the >>>> issue >>>> >>>>> here. R *generally* obtains whatever "label" info it needs from >>>> the >>>> >>>> object >>>> >>>>> being tabled -- see ?tabulate, ?table etc. -- if that's what >>>> you're >>>> >>>> doing. >>>> >>>>> >>>> >>>>> Bert Gunter >>>> >>>>> >>>> >>>>> "The trouble with having an open mind is that people keep coming >>>> along >>>> >>>> and >>>> >>>>> sticking things into it." >>>> >>>>> -- Opus (aka Berkeley Breathed in his "Bloom County" comic strip ) >>>> >>>>> >>>> >>>>> >>>> >>>>> On Fri, Feb 7, 2020 at 8:28 AM Yawo Kokuvi <yawo1...@gmail.com> >>>> >>> wrote: >>>> >>>>> >>>> >>>>>> Hello, >>>> >>>>>> >>>> >>>>>> I am just transitioning from SPSS to R. >>>> >>>>>> >>>> >>>>>> I used the haven library to import some of my spss data files to >>>> R. >>>> >>>>>> >>>> >>>>>> However, when I run procedures such as frequencies or crosstabs, >>>> >>> value >>>> >>>>>> labels for categorical variables such as gender (1=male, >>>> 2=female) >>>> >>> are >>>> >>>>> not >>>> >>>>>> shown. The same applies to many other output. >>>> >>>>>> >>>> >>>>>> I am confused. >>>> >>>>>> >>>> >>>>>> 1. Is there a global setting that I can use to force all >>>> categorical >>>> >>>>>> variables to display labels? >>>> >>>>>> >>>> >>>>>> 2. Or, are these labels to be set for each function or package? >>>> >>>>>> >>>> >>>>>> 3. How can I request the value labels for each function I run? >>>> >>>>>> >>>> >>>>>> Thanks in advance for your help.. >>>> >>>>>> >>>> >>>>>> Best, Yawo >>>> >>>>>> >>>> >>>>>> [[alternative HTML version deleted]] >>>> >>>>>> >>>> >>>>>> ______________________________________________ >>>> >>>>>> R-help@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@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@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. >>>> >>>> >>>> >>> >>>> >>> >>>> >>> -- >>>> >>> John Kane >>>> >>> Kingston ON Canada >>>> >>> >>>> >>> [[alternative HTML version deleted]] >>>> >>> >>>> >>> ______________________________________________ >>>> >>> R-help@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@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. >>>> > >>>> >>>> ______________________________________________ >>>> R-help@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. >>>> >>> >>> >>> -- >>> John Kane >>> Kingston ON Canada >>> >> > > -- > John Kane > Kingston ON Canada > [[alternative HTML version deleted]] ______________________________________________ R-help@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.