I did read the help page before posting, but didn't find the direct way... My function here works fine. But just for learning purposes, I'd like to be able to avoid the loop...

with.labels <- function(x, labels=NULL, csvfile=NULL) {
if(!is.null(csvfile)) labels <- read.csv(csvfile, sep="\t", header=F, stringsAsFactors=F)[,1]
for(i in 1:length(x)) label(x[,i]) <- labels[i]
if(length(labels) != length(x)) cat("Warning: data and labels are not of same length\n")
return(x)
}

Thanks

> Message: 11
> Date: Tue, 16 Aug 2011 04:22:07 -0700 (PDT)
> From:
Frank Harrell <f.harrell@vanderbilt.edu>
> To:
r-help@r-project.org
> Subject:
Re: [R] Labelling all variables at once (using Hmisc label)
> Message-ID:
<1313493727519-3746928.post@n4.nabble.com>
> Content-Type:
text/plain; charset=UTF-8
> 
> Do
require(Hmisc); ?label to see the help file for label.  It will show you
> how to
do this:
>  
> Monsieur
Do wrote:
> >
I have a dataset and a list of labels. I simply want

> > to
apply the labels to the variables, all at once. The only way I was able
> > to do
it was using a loop:
> >
> > for (i in 1:length(data)) label(data[,i]) <-data.labels[i]
> >
> > I'd like to find the non-loop way to do it, using

> >
apply or the like... Any help appreciated.
> >
> -----

> Frank
Harrell
> Department
of Biostatistics, Vanderbilt University
	[[alternative HTML version deleted]]

