Never mind what I said about "Clickable". All I meant was I created an
item "definitions" that appears after I load the binary file, and that
I
can "click" (don's ask me what I mean by "click") the
item in RStudio to
read its contents -- variable definitions.
All I want to know at this pointis, is whether my way of getting the
definitions in the environment "clumsy" and whether there are better
ways to do it. Yes, you mention "attr..." but that is not as simple as
viewing it in RStudio's environment pane. Thank you!
On 2021/5/14 ?? 06:37, PIKAL Petr wrote:> 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 at r-project.org> On Behalf Of
Steven Yen
>> Sent: Friday, May 14, 2021 11:20 AM
>> To: Jim Lemon <drjimlemon at gmail.com>
>> Cc: R-help Mailing List <r-help at 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 at
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 at ntu.edu.tw>
>>>>> Sent: Thursday, May 13, 2021 5:53 PM
>>>>> To: PIKAL Petr <petr.pikal at 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 at ntu.edu.tw>
>>>>>>> Sent: Thursday, May 13, 2021 1:37 PM
>>>>>>> To: PIKAL Petr <petr.pikal at 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 at
r-project.org> On Behalf Of Steven
>>>>> Yen
>>>>>>>>> Sent: Thursday, May 13, 2021 10:07 AM
>>>>>>>>> To: Fredrik Karlsson <dargosch at
gmail.com>
>>>>>>>>> Cc: R-help Mailing List <r-help at
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 at 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 at 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 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.
>>>>>>>>>> --
>>>>>>>>>> "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 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.
>>>> ______________________________________________
>>>> 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.
>> ______________________________________________
>> 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.