Steve Powell wrote: > 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.
Why would that work? someobject was never changed in any way. Use someobject <- Test(someobject, 'new label') or if that's all you want, just label(someobject) <- 'new label' Frank > 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:[EMAIL PROTECTED] > Sent: 17 September 2007 17:18 > To: Steve Powell > Cc: [EMAIL PROTECTED] > 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:[EMAIL PROTECTED] >> Sent: 12 September 2007 14:38 >> To: Steve Powell >> Cc: [EMAIL PROTECTED] >> 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@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 ______________________________________________ R-help@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.