[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