moleps
2010-Aug-25 20:26 UTC
[R] accessing the attr(*,label.table) after importing from spss
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" ...
moleps
2010-Aug-26 20:03 UTC
[R] accessing the attr(*, label.table) after importing from spss
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 <moleps2 at 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 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. >>