John Kane
2006-Aug-01 17:43 UTC
[R] What's a labelled data.frame? And how do I work with it?
I imported an SPSS file with its data labels using
spss.get (Library(Hmisc).
Class = data.frame
I then updated some of the spss labels and added a
label to the object itself.
label (staff.allocation) <- "raw data from the spss
file"
I then save it as an R object. When I load the object
for further work it comes in as Class = "labelled"
"data.frame"
Then I try this
---------------------------------------------------------
# Get the raw data that we have imported from SPSS.
load("H:/R.objects/staff.allocation.Rdata")
# Recode all 99's in the data base as NA except dates
and Subject since subject
# 99 is a valid ID number.
# Drop dates and ids
st1 <- staff.allocation[, -1:-4]
st1[st1==99] <- NA
#replace date and id forget the entry date
st2 <-data.frame(staff.allocation$site,
staff.allocation$subject,
staff.allocation$date, st1)
-----------------------------------------------------
If I have applied a label to the data.frame I get an
error
Error in data.frame(staff.allocation$site,
staff.allocation$subject, staff.allocation$date, :
arguments imply differing number of rows: 1865,
114
I orgininally was getting an error about
" staff.allocation$site is a labelled
class and cannot be coerced into a data.frame"
but I lost that one while trying to see what was
happeing
If I do not apply the label to staff.allocation then I
get a Class = "data.frame and I have no problem
creating the second data.frame.
Can anyone suggest what I am missing or what is
happening
Thanks
John Kane
2006-Aug-01 19:48 UTC
[R] What's a labelled data.frame? And how do I work with it?
--- John Kane <jrkrideau at yahoo.ca> wrote:> I imported an SPSS file with its data labels using > spss.get (Library(Hmisc). > Class = data.frame > > I then updated some of the spss labels and added a > label to the object itself. > > label (staff.allocation) <- "raw data from the spss > file" > > I then save it as an R object. When I load the > object > for further work it comes in as Class = "labelled" > "data.frame" > > > Then I try this > >---------------------------------------------------------> # Get the raw data that we have imported from SPSS. > load("H:/R.objects/staff.allocation.Rdata") > > # Recode all 99's in the data base as NA except > dates > and Subject since subject > # 99 is a valid ID number. > > # Drop dates and ids > st1 <- staff.allocation[, -1:-4] > > st1[st1==99] <- NA > > #replace date and id forget the entry date > st2 <-data.frame(staff.allocation$site, > staff.allocation$subject, > staff.allocation$date, st1) > >-----------------------------------------------------> If I have applied a label to the data.frame I get an > error > Error in data.frame(staff.allocation$site, > staff.allocation$subject, staff.allocation$date, : > > arguments imply differing number of rows: 1865, > 114 > > I orgininally was getting an error about > " staff.allocation$site is a labelled > class and cannot be coerced into a data.frame" > > but I lost that one while trying to see what was > happeing > > If I do not apply the label to staff.allocation then > I > get a Class = "data.frame and I have no problem > creating the second data.frame. > > Can anyone suggest what I am missing or what is > happening > > ThanksTo follow up to my own post it appears that if I make any changes in the imported labels I also get an error message when I attempt to create that data.frame The message is Error in as.data.frame.default(x[[i]], optional TRUE) : cannot coerce class "labelled" into a data.frame