Thx... The following seems to work. However I´m sure there is a more elegant solution to it....
tre<-dat b<-length(dat) attr(dat,"label.table")->a for (i in 1:b){ if(!is.null(a[[i]]) & length(levels(as.factor(dat[,i])))==length(a[[i]])) { tre[,i]<-factor(dat[,i],labels=names(a[[i]])) } } tre Regards, //M On 25. aug. 2010, at 23.05, Bert Gunter wrote: > ?attr > ?attributes > > -- Bert Gunter > > On Wed, Aug 25, 2010 at 1:26 PM, moleps <mole...@gmail.com> wrote: >> Dear all, >> I just received a file from a colleague in spss. The read.spss could not >> finish the file due to an error (Unrecognized record type 7, subtype 18 >> encountered in system file) so instead I converted the file using >> stat-transfer. Looking at my data I see that most labels are in the >> attributes and I´d love to access them and assign the pertinent variables to >> factors without doing the whole factor(levels,labels) thing manually. Is >> there any remedy to this ?? >> >> regards, >> >> M >> >> >>> str(dat) >> 'data.frame': 860 obs. of 19 variables: >> $ Ag : int 15 15 15 15 15 15 15 15 15 15 ... >> $ G : int 2 2 2 1 1 1 1 1 1 2 ... >> $ GCQ : int 15 15 15 15 15 15 15 15 15 15 ... >> $ Amn : int 2 2 2 2 2 2 1 1 1 1 ... >> $ HI : int 1 1 1 1 1 1 2 2 2 2 ... >> $ Hos: int 2 2 2 2 2 2 2 2 2 2 ... >> $ Risk : int 2 2 2 2 2 2 2 2 2 2 ... >> $ CTO : int 2 2 2 2 2 1 1 1 1 1 ... >> $ pat : int NA NA NA NA NA 2 2 2 2 2 ... >> $ Day : int 7 7 7 5 4 6 5 7 7 5 ... >> $ Ho : int NA NA NA NA NA NA NA NA NA NA ... >> $ coh : int 1 1 1 1 1 1 1 1 1 1 ... >> $ Comp : int 1 1 1 1 1 1 1 1 1 1 ... >> $ Ethan : int 2 2 2 2 2 2 2 2 2 2 ... >> $ Pro : num NA NA NA NA NA NA NA NA NA NA ... >> $ Ye : int 1 1 1 3 3 3 1 1 1 3 ... >> $ Ageg : int 1 1 1 1 1 1 1 1 1 1 ... >> $ BAC : int 0 0 0 0 0 0 0 0 0 0 ... >> - attr(*, "val.labels")= chr "" "VL_Gender" "" "VL_Amnesia" ... >> - attr(*, "var.labels")= chr "Age (years)" "Gender" "GCQSSA" "Amnesty" ... >> - attr(*, "label.table")=List of 19 >> ..$ : NULL >> ..$ : Named num 1 2 >> .. ..- attr(*, "names")= chr "Male" "Female" >> ..$ : NULL >> ..$ : Named num 1 2 >> .. ..- attr(*, "names")= chr "Yes" "No" >> ..$ : NULL >> ..$ : Named num 1 2 >> .. ..- attr(*, "names")= chr "Yes" "No" >> ..$ : Named num 1 2 >> .. ..- attr(*, "names")= chr "Yes" "No" >> ..$ : Named num 1 2 >> .. ..- attr(*, "names")= chr "Yes" "No" >> ..$ : Named num 1 2 >> .. ..- attr(*, "names")= chr "Yes" "No" >> ..$ : Named num 1 2 3 4 5 6 7 >> .. ..- attr(*, "names")= chr "Monday" "Tuesday" "Wednesday" "Thursday" ... >> ..$ : Named num 1 2 >> .. ..- attr(*, "names")= chr "Yes" "No" >> ..$ : Named num 1 2 >> .. ..- attr(*, "names")= chr "Yes" "No" >> ..$ : Named num 1 2 3 4 5 6 7 >> .. ..- attr(*, "names")= chr "Yes" "Overtriage " "Undertriage with >> admission" "Overtriage with pos" ... >> ..$ : Named num 1 2 >> .. ..- attr(*, "names")= chr "Yes" "No" >> ..$ : NULL >> ..$ : NULL >> ..$ : Named num 1 2 3 4 >> .. ..- attr(*, "names")= chr "15 - 24" "25-39" "40-59" "60-" >> ..$ : Named num 1 2 3 >> .. ..- attr(*, "names")= chr "0.10-0.99" "1.00-1.99" "2.00-" >> ..$ : Named num 0 1 2 3 4 >> .. ..- attr(*, "names")= chr "sorry" "undeweight" "0.10-0.99" "1.00-1.99" >> ... >> ______________________________________________ >> 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. >> ______________________________________________ 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.