[R] Creating Hmisc labels inside a function
Steve Powell
steve at promente.org
Wed Sep 19 08:42:19 CEST 2007
Thanks again Frank for quick reply.
True,
someobject=2
Test=function(obj,labe)
{
label(obj)=labe
#at this point add the line:
obj
}
Test(someobject,"somelabel")
#returns a label. But if you retype
someobject
#the label has gone. That is what I meant by the label not being permanently
changed.
Steve
proMENTE social research
research | evaluation | training & consulting
Kranjčevićeva 35, 71000 Sarajevo
mobile: +387 61 215 997 | office: +387 33 556 865 | fax: +387 33 556 866
skype: stevepowell99
www.promente.org | www.mojakarijera.com | www.psih.org
-----Original Message-----
From: Frank E Harrell Jr [mailto:f.harrell at vanderbilt.edu]
Sent: 17 September 2007 17:18
To: Steve Powell
Cc: r-help at stat.math.ethz.ch
Subject: Re: [R] Creating Hmisc labels inside a function
Steve Powell wrote:
>
> Thanks, Frank - it doesn't work though.
> Your suggestion was:
>
Test=function(obj,labe)
{
label(obj)=labe
#at this point add the line:
obj
}
> #...but just returning the object does not permanently change the label:
> obj
It does for me. Please re-run. -Frank
> attributes(Test(1:3, 'some label'))
$label
[1] "some label"
$class
[1] "labelled"
You don't need assign.
Frank
>
> That is why I wanted to use assign. But "assign" will not work with
> attributes, labels etc. So
>
> assign(label(obj),"some label") #doesn't even work outside a function,
> at the command prompt.
>
> Any more ideas anyone?
> Best wishes
> Steve Powell
>
>
> proMENTE social research
> research | evaluation | training & consulting Kranjčevićeva 35, 71000
> Sarajevo
> mobile: +387 61 215 997 | office: +387 33 556 865 | fax: +387 33 556
> 866
> skype: stevepowell99
> www.promente.org | www.mojakarijera.com | www.psih.org
>
> -----Original Message-----
> From: Frank E Harrell Jr [mailto:f.harrell at vanderbilt.edu]
> Sent: 12 September 2007 14:38
> To: Steve Powell
> Cc: r-help at stat.math.ethz.ch
> Subject: Re: [R] Creating Hmisc labels inside a function
>
> Steve Powell wrote:
>> hello list members,
>> I am wanting to write a label using the Hmisc package, but inside a
>> function. Normally I can do:
>>
>> library(Hmisc)
>> M=2
>> label(M)="lab"
>>
>> #But inside a function the "=" does not work:
>> Test=function(obj,labe)
>> {
>> label(obj)=labe
>
> at this point add the line:
>
> obj
>
>> }
>
> The returned object will have what you need. -Frank
>
>> Test(M,"new label")
>>
>> I usually use the "assign" function to make assignments inside
>> functions, but assign will not work with attributes, labels etc.
>> Any ideas?
>> Thanks in advance
>>
>> Steve Powell
>>
>>
>> proMENTE social research
>> research | evaluation | training & consulting Kranjčevićeva 35, 71000
>> Sarajevo
>> mobile: +387 61 215 997 | office: +387 33 556 865 | fax: +387 33 556
>> 866
>> skype: stevepowell99
>> www.promente.org | www.mojakarijera.com | www.psih.org
>>
>>
>> Checked by AVG Free Edition.
>>
>> 17:43
>>
>> ______________________________________________
>> R-help at r-project.org mailing list
>> 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.
>>
>
>
--
Frank E Harrell Jr Professor and Chair School of Medicine
Department of Biostatistics Vanderbilt University
No virus found in this incoming message.
Checked by AVG Free Edition.
16.09.2007
18:32
Checked by AVG Free Edition.
16.09.2007
18:32
More information about the R-help
mailing list