On Tue, Jul 23, 2013 at 12:54 PM, Fg Nu <fgn...@yahoo.com> wrote: > > > > ----- Original Message ----- > From: Ista Zahn <istaz...@gmail.com> > To: Fg Nu <fgn...@yahoo.com> > Cc: "r-devel@r-project.org" <r-devel@r-project.org> > Sent: Tuesday, July 23, 2013 9:50 PM > Subject: Re: [Rd] cbind error with check.names > > On Tue, Jul 23, 2013 at 9:18 AM, Fg Nu <fgn...@yahoo.com> wrote: >> >> >> >> Here is an example where cbind fails with an error when check.names=TRUE is >> set. >> >> data(airquality) >> airQualityBind =cbind(airquality,airquality,check.names =TRUE) >> >> >> I understand that cbind is a call to data.frame and the following works: >> airQualityBind =data.frame(airquality,airquality,check.names =TRUE) >> but I would like to understand why cbind throws an error. >> >> I asked this question on SO here: >> http://stackoverflow.com/questions/17810470/cbind-error-with-check-names >> and user Hong Ooi confirmed my suspicion that cbind was passing check.names >> = FALSE regardless of my setting that option, even though the help file >> indicates that this should be possible, >> >> "For the "data.frame" method of cbind these can be further arguments to >> data.frame such as stringsAsFactors." >> >> Is there some design principle that I am missing here? > > > Well, the function does work as documented. See the help file section > on "Data frame methods", which says "The 'cbind' data frame method is > just a wrapper for 'data.frame(..., check.names = FALSE)'". > > Best, > Ista > > > > Is there then a reason that overriding the check.names default is forbidden > from cbind? I can't tell why this would be the case.
For the same reason you can't have data.frame(x=1:10, x=11:20, check.names=TRUE, check.names=FALSE) or mean(x=1:10, x=11:20) i.e, you can't generally pass the same argument more than once. There are exceptions to this, e.g., sum(c(NA, 1:10), na.rm=TRUE, na.rm=FALSE) but in general each argument can only be matched once. Since cbind.data.frame calls data.frame with check.names=FALSE, you can't supply it again. Best, Ista > > Thanks > ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel