On Sat, Jan 31, 2009 at 10:13 AM, Peter Dalgaard <p.dalga...@biostat.ku.dk>wrote:
> Duncan Murdoch wrote: > >> On 31/01/2009 7:31 AM, Andrew Piskorski wrote: >> >>> On Fri, Jan 30, 2009 at 11:51:00AM -0500, Simon Urbanek wrote: >>> >>>> Subject: Re: [Rd] (PR#13487) Segfault when mistakenly calling >>>> [.data.frame >>>> >>> >>> ever tried drop=FALSE ? >>>> >>> >>> Simon, no, the drop=FALSE argument has nothing to do with what >>> Christian was talking about. The kind of thing he meant is PR# 8192, >>> "Subject: [ subscripting sometimes loses names": >>> >>> http://bugs.r-project.org/cgi-bin/R/wishlist?id=8192 >>> >> >> In that bug report you were asked to provide simple examples, and you >> didn't. >> ... >> I just tracked this one down, and can put together this simple example: >> >> > (1:3)["no"] >> [1] NA >> >> where I think you would want the name "no" attached to the output. > > No, it has nothing to do with indexing by name. It's about preserving existing names when subsetting. And the other two cases where you list "BAD" behaviour? I didn't track them >> down. >> > > I did, and they boil down to variations of > > > data.frame(val=1:3,row.names=letters[1:3])[,1] > [1] 1 2 3 > > but it's not obvious that the result should be named using the row.names > and (in particular) whether or why it should differ from .....[[1]] and > ....$val. Given that for most purposes, extracting the relevant names would > just be unnecessary red tape, I'd say that we can do without it. Compare > data.frame(val=1:3,row.names=letters[1:3])[,1] [1] 1 2 3 > as.matrix(data.frame(val=1:3,row.names=letters[1:3]))[,1] a b c 1 2 3 X[,1] preserves row names if X is a matrix, and loses them if X is a data frame. To me, this is ugly and inconsistent. One might argue that having names and dimnames at all is "red tape", and wastes memory and computational efficiency -- after all, Fortran arrays had no names. But R chose to drag along the names (sometimes), and it can be very helpful to us humans. Now R should do it consistently. /Christian [[alternative HTML version deleted]] ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel