When I use rbind() or rbind.data.frame() to add a row to an existing dataframe, it appears that attributes for the column of type "factor" are dropped. See the sample example below to reproduce the problem. Please suggest How I can fix this.
Thanks, Sammy a=c("Male", "Male", "Female", "Male") b=c(1,2,3,4) c=c("great", "bad", "good", "bad") dataset<- data.frame (gender = a, count = b, answer = c) > dataset gender count answer 1 Male 1 great 2 Male 2 bad 3 Female 3 good 4 Male 4 bad > attributes(dataset$answer) $levels [1] "bad" "good" "great" $class [1] "factor" Now adding some custom attributes to column dataset$answer attributes(dataset$answer)<-c(attributes(dataset$answer),list(newattr1="custom-attr1")) attributes(dataset$answer)<-c(attributes(dataset$answer),list(newattr2="custom-attr2")) > attributes(dataset$answer) $levels [1] "bad" "good" "great" $class [1] "factor" $newattr1 [1] "custom-attr1" $newattr2 [1] "custom-attr2" However as soon as I add a row to this data frame ("dataset") by rbind(), it loses the custom attributes ("newattr1" and "newattr2") I have just added newrow = c(gender="Female", count = 5, answer = "great") dataset <- rbind(dataset, newrow) > attributes(dataset$answer) $levels [1] "bad" "good" "great" $class [1] "factor" the two custom attributes are dropped!! Any suggestion why this is happening. On Fri, Nov 11, 2011 at 11:44 AM, Jeff Newmiller <jdnew...@dcn.davis.ca.us>wrote: > As the doctor says, if it hurts "don't do that". > > A factor is a sequence of integers with a corresponding list of character > strings. Factors in two separate vectors can and usually do map the same > integer to different strings, and R cannot tell how you want that resolved. > > Convert these columns to character before combining them, and only convert > to factor when you have all of your possibilities present (or you specify > them in the creation of the factor vector). > --------------------------------------------------------------------------- > Jeff Newmiller The ..... ..... Go Live... > DCN:<jdnew...@dcn.davis.ca.us> Basics: ##.#. ##.#. Live > Go... > Live: OO#.. Dead: OO#.. Playing > Research Engineer (Solar/Batteries O.O#. #.O#. with > /Software/Embedded Controllers) .OO#. .OO#. rocks...1k > --------------------------------------------------------------------------- > Sent from my phone. Please excuse my brevity. > > Sammy Zee <szee2...@gmail.com> wrote: > > >Hi all, > > > >When I use rbind() or rbind.data.frame() to add a row to an existing > >dataframe, it appears that attributes for the column of type "factor" > >are > >dropped. I see the following post with same problem. However i did not > >see > >any reply to the following posting offering a solution. Could someone > >please help. > > > > > http://r.789695.n4.nabble.com/rbind-data-frame-drops-attributes-for-factor-variables-td919575.html > > > >Thanks, > >Sammy > > > > [[alternative HTML version deleted]] > > > >______________________________________________ > >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. > > [[alternative HTML version deleted]] ______________________________________________ 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.