[R] Variable labels
PIKAL Petr
petr@p|k@| @end|ng |rom prechez@@cz
Fri May 14 12:37:17 CEST 2021
Hm. What do you mean by "clickable".
#I can save any objects to a file
save(mydata,definitions, file="test.R")
rm("mydata", "definitions")
#load them back
load("test.R")
#but it does not make them "clickable". Point and click is something I am familiar with in Excel or similar programs byt not in R.
#objects are back in the environment and one can inspect them by regular way (print, str, head, ...)
mydata
id age yrmarry
1 1 35 4
2 2 31 6
3 3 21 4
4 4 20 3
5 5 19 7
6 6 24 5
definitions
var.labels
id Individual ID
age Age in Years
yrmarry Years of marriage
If you want definitions to be part of the data file just use attr.
attr(mydata, "var.labels") <- definitions$var.labels
attributes(mydata)
$names
[1] "id" "age" "yrmarry"
$class
[1] "data.frame"
$row.names
[1] 1 2 3 4 5 6
$var.labels
[1] "Individual ID" "Age in Years" "Years of marriage"
Cheers
Petr
> -----Original Message-----
> From: R-help <r-help-bounces using r-project.org> On Behalf Of Steven Yen
> Sent: Friday, May 14, 2021 11:20 AM
> To: Jim Lemon <drjimlemon using gmail.com>
> Cc: R-help Mailing List <r-help using r-project.org>
> Subject: Re: [R] Variable labels
>
> Thanks to all, for bearing with me.
>
> Now I realize expss may not be what I need. I have now written a self-
> runnable, replicable set of codes (listed below). Perhaps that gives an idea of
> what I need. Question is, whethet this is the right way to do this (to have a
> clickable object to learn about variable
> definitions) or whether there are better ways. Thanks!
>
> Steven
>
> rm(list=ls())
> n<-6
> mydata<-data.frame(id=1:n,
> age=floor(rnorm(n,25,10)),
> yrmarry=floor(rnorm(n,5,2))) var.labels<-c(id = "Individual ID",
> age = "Age in Years",
> yrmarry = "Years of marriage")
> definitions<-as.data.frame(var.labels) # declare definitions as a data frame
> save.image("c:/temp/a/try1.RData") # save binary .RData file
> rm(list=ls()) # clean environment
> load("c:/temp/a/try1.RData") # now load .RData file and definitions are
> clickable
> # all I need is for user to be able to click
> # and read the variable definitions
>
> On 2021/5/14 下午 05:15, Jim Lemon wrote:
> > Hi Steven,
> > I just happened to scan Petr's message to you and wondered if you were
> > looking for something related to the "describe" function in the
> > prettyR package (and a few others). For instance, if you do this:
> >
> > library(prettyR)
> > describe(mtcars)
> >
> > you get this:
> >
> > Description of mtcars
> >
> > Numeric
> > mean median var sd valid.n
> > mpg 20.09 19.20 36.32 6.03 32
> > cyl 6.19 6.00 3.19 1.79 32
> > disp 230.72 196.30 15360.80 123.94 32
> > hp 146.69 123.00 4700.87 68.56 32
> > drat 3.60 3.70 0.29 0.53 32
> > wt 3.22 3.33 0.96 0.98 32
> > qsec 17.85 17.71 3.19 1.79 32
> > vs 0.44 0.00 0.25 0.50 32
> > am 0.41 0.00 0.25 0.50 32
> > gear 3.69 4.00 0.54 0.74 32
> > carb 2.81 2.00 2.61 1.62 32
> >
> > However, you can call almost any summary function as an argument to
> > describe. Suppose I wrote a function "fackey" that produced this
> > output on a factor variable "city":
> >
> > fackey(city)
> >
> > label numeric count
> > New York 10 30
> > London 15 23
> > Paris 16 22
> > Rome 20 25
> >
> > So if you ran "describe" on your data frame, you would get a list of
> > summary data frames that could be saved with the data frame in an
> > .Rdata file. Is this what you are looking for?
> >
> > Jim
> >
> > On Fri, May 14, 2021 at 4:59 PM PIKAL Petr <petr.pikal using precheza.cz>
> wrote:
> >> Hallo Steven
> >>
> >> You probably need to be more specific what is your intention. I still
> wonder what is the real problem you want to solve.
> >>
> >> You loaded binary file and it resulted to 2 data frames. So far so good. But
> now I am lost.
> >>
> >> You want to merge info from data frame "desc" to data frame "data"? You
> can use attr.
> >> You want to make binary file which behaves like the one you get? Use
> save/load.
> >> You want to do something different? So please explain what exactly.
> >>
> >> Cheers
> >> Petr
> >>
> >>
> >>> -----Original Message-----
> >>> From: Steven Yen <styen using ntu.edu.tw>
> >>> Sent: Thursday, May 13, 2021 5:53 PM
> >>> To: PIKAL Petr <petr.pikal using precheza.cz>
> >>> Subject: Re: [R] Variable labels
> >>>
> >>> Petr
> >>>
> >>> Those attachments (1.jpg, 2.jpg) I sent earlier were just screen
> >>> captures (with a third-party program) of what I saw in the
> >>> Environment pane right after loading the data. Sorry I cannot explain my
> questions well enough.
> >>>
> >>> All I was showing you was, right after loading the binary data file,
> >>> I saw two data frames---data which contain the data, and desc which
> >>> contains definitions of all variables (as shown in 2.jpg). This is a
> >>> data file from the publisher and I wanted to know what it takes to
> >>> create a binary data files along with definitions of variables, both in the
> environment.
> >>>
> >>> Steven
> >>>
> >>> On 2021/5/13 下午 09:51, PIKAL Petr wrote:
> >>>> Hi Steven
> >>>>
> >>>> I probably do not understand your question correctly. In 1 you show
> >>>> two
> >>> objects "data" 14x42 data frame and "desc" which is 2x14 data frame,
> >>> both residing in global environment.
> >>>> In 2 you show contents of data frame desc where variable are
> >>>> probably
> >>> variable names which are also in data object.
> >>>> names(data)
> >>>>
> >>>> and label which is some more elaborate description of the variable.
> >>>>
> >>>> If you want to move this label into your data object you probably
> >>>> could use attr
> >>>>
> >>>> attr(data, "label") <- desc$label
> >>>>
> >>>> If the order of "variable" is same as the order of data columns.
> >>>>
> >>>> I do not understand what do you mean by - how to get that "desc" in
> >>>> there in the environment? It is already part of global environment.
> >>>> You
> >>> want to create some new environment and move you desc there?
> >>>> Beside, your images are not familiar to me, this is plain R or some
> >>>> kind of
> >>> special GUI like R studio?
> >>>> Cheers
> >>>> Petr
> >>>>
> >>>>> -----Original Message-----
> >>>>> From: Steven Yen <styen using ntu.edu.tw>
> >>>>> Sent: Thursday, May 13, 2021 1:37 PM
> >>>>> To: PIKAL Petr <petr.pikal using precheza.cz>
> >>>>> Subject: Re: [R] Variable labels
> >>>>>
> >>>>> Petr
> >>>>>
> >>>>> Thanks. I am sending this to you privately as I am sending attachment.
> >>>>>
> >>>>> 1. I load the binary file and see the data frame and what appears
> >>>>> to be description (desc) alongside it (1.jpg).
> >>>>>
> >>>>> 2. Expanding "desc", I get to read the documentation (contents of
> desc).
> >>>>> (2.jpg).
> >>>>>
> >>>>> #2 is all I need. I do not need to do anything fancy with the
> >>>>> variable label. I just like my students to have a simple ways of
> >>>>> learning the variables is the data file I provide to them.
> >>>>>
> >>>>> Again, my main question is, how to get that "desc" in there in the
> >>>>> environment. Thanks.
> >>>>>
> >>>>> Steven
> >>>>>
> >>>>> On 2021/5/13 下午 06:31, PIKAL Petr wrote:
> >>>>>> Hi.
> >>>>>>
> >>>>>> Maybe you could use attributes.
> >>>>>>
> >>>>>> dput(vec.m)
> >>>>>> structure(list(Group.1 = c(2003, 2021, 2003, 2021, 2003, 2021,
> >>>>>> 2003, 2021, 2003, 2021, 2003, 2021, 2003, 2021, 2003, 2021, 2003,
> >>>>>> 2021), variable = structure(c(1L, 1L, 2L, 2L, 3L, 3L, 4L, 4L, 5L,
> >>>>>> 5L, 6L, 6L, 7L, 7L, 8L, 8L, 9L, 9L), .Label = c("s6", "s5", "s4",
> >>>>>> "s3", "s2", "s1.5", "s.7", "s.5", "pod"), class = "factor"),
> >>>>>> value = c(3.29, 0.525, 5.01, 1.385, 16.38, 7.67, 5.535, 3.28,
> >>>>>> 25.49, 24.41, 10.285, 12.79, 8.905, 12.92, 1.68, 3.67, 2.595,
> >>>>>> 5.06)), row.names = c(NA, -18L), class = "data.frame")
> >>>>>>
> >>>>>>> attr(vec.m, "some.kind.of.value") <- c("some specialvector",
> >>>>>>> "another special vector", "just ordinary vector")
> >>>>>> You can access them by attributes or attr.
> >>>>>>
> >>>>>> attributes(vec.m)
> >>>>>> $row.names
> >>>>>> [1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
> >>>>>>
> >>>>>> $names
> >>>>>> [1] "Group.1" "variable" "value"
> >>>>>>
> >>>>>> $class
> >>>>>> [1] "data.frame"
> >>>>>>
> >>>>>> $some.kind.of.value
> >>>>>> [1] "some specialvector" "another special vector" "just ordinary
> >>> vector"
> >>>>>>> attr(vec.m, "some")
> >>>>>> [1] "some specialvector" "another special vector" "just ordinary
> >>> vector"
> >>>>>> Cheers
> >>>>>> Petr
> >>>>>>
> >>>>>>> -----Original Message-----
> >>>>>>> From: R-help <r-help-bounces using r-project.org> On Behalf Of Steven
> >>> Yen
> >>>>>>> Sent: Thursday, May 13, 2021 10:07 AM
> >>>>>>> To: Fredrik Karlsson <dargosch using gmail.com>
> >>>>>>> Cc: R-help Mailing List <r-help using r-project.org>
> >>>>>>> Subject: Re: [R] Variable labels
> >>>>>>>
> >>>>>>> Thanks. What I need “appears” simple. The .RData file is
> >>>>>>> provided by a third party (likely converted from a different
> >>>>>>> data format such as SAS in which variable labels (not value
> >>>>>>> labels) are common). When I load the binary file, in the
> >>>>>>> “environment” I see, as expected, a data frame showing how many
> >>>>>>> observations for how many variables. In addition, there is also
> >>>>>>> an item (in the
> >>>>>>> environment) (say “desc”) containing a list of variable labels
> >>>>>>> (definitions). I simply like to know how to get “desc” in the
> >>>>>>> environment—-it is a convenient way to show definitions of all
> >>>>>>> variables when you send a binary data file to a third party. Thank
> you.
> >>>>>>>
> >>>>>>>> On May 13, 2021, at 2:57 PM, Fredrik Karlsson
> >>>>>>>> <dargosch using gmail.com>
> >>>>>>> wrote:
> >>>>>>>> Hi,
> >>>>>>>>
> >>>>>>>> I am sorry but I don't understand your question, Generally,
> >>>>>>>> "clicking" is not
> >>>>>>> something you can assume to be implemented for anything in R.
> >>>>>>>> However, if you read the manual for the package
> >>>>>>>>
> >>>>>>>> https://gdemin.github.io/expss/
> >>>>>>>>
> >>>>>>>> you get an example at the bottom where an illustration of how
> >>>>>>>> the package
> >>>>>>> can be used to create Excel tables which would then be easy to
> >>>>>>> interact with through clicking.
> >>>>>>>> Is that what you wanted?
> >>>>>>>>
> >>>>>>>> Fredrik
> >>>>>>>>
> >>>>>>>>> On Thu, May 13, 2021 at 4:49 AM Steven Yen
> <styen using ntu.edu.tw>
> >>>>> wrote:
> >>>>>>>>> I insert variable with the expss function as shown below. No
> >>>>>>>>> error message. My question is, how to save the variable labels
> >>>>>>>>> in the data frame so that I can click to read the labels. Thank you.
> >>>>>>>>>
> >>>>>>>>> mydata<-read_excel("data/Excel/hseinv.xlsx",na=".")
> >>>>>>>>> library(expss)
> >>>>>>>>> mydata=apply_labels(mydata,
> >>>>>>>>> year ="1947-1988",
> >>>>>>>>> inv ="real housing inv, millions $",
> >>>>>>>>> pop ="population, 1000s",
> >>>>>>>>> price ="housing price index; 1982 = 1",
> >>>>>>>>> linv ="log(inv)",
> >>>>>>>>> lpop ="log(pop)",
> >>>>>>>>> lprice ="log(price)",
> >>>>>>>>> t ="time trend: t=1,...,42",
> >>>>>>>>> invpc ="per capita inv: inv/pop",
> >>>>>>>>> linvpc ="log(invpc)",
> >>>>>>>>> lprice_1="lprice[_n-1]",
> >>>>>>>>> linvpc_1="linvpc[_n-1]",
> >>>>>>>>> gprice ="lprice - lprice_1",
> >>>>>>>>> ginvpc ="linvpc - linvpc_1")
> >>>>>>>>>
> >>>>>>>>> ______________________________________________
> >>>>>>>>> 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.
> >>>>>>>> --
> >>>>>>>> "Life is like a trumpet - if you don't put anything into it,
> >>>>>>>> you don't get
> >>>>>>> anything out of it."
> >>>>>>>
> >>>>>>> [[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.
> >> ______________________________________________
> >> 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.
>
> ______________________________________________
> 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.
More information about the R-help
mailing list