From p.dalgaard at biostat.ku.dk  Wed Sep 24 21:46:42 2003
From: p.dalgaard at biostat.ku.dk (Peter Dalgaard BSA)
Date: Wed Sep 24 22:46:45 2003
Subject: [Rd] partial matching in data frame subscripting
In-Reply-To: <3F71DB81.9000606@pburns.seanet.com>
References: <3F71DB81.9000606@pburns.seanet.com>
Message-ID: <x2he31rk0p.fsf@biostat.ku.dk>

Patrick Burns <pburns@pburns.seanet.com> writes:

> I'm not sure if the following is a bug or a feature:
> 
>  > jjmat <- array(1:6, c(2,3), list(c('ABC', 'DEF'), c('xyz', 'tuv',
> 'qrs')))
>  > jjdf <- as.data.frame(jjmat)
>  > jjmat['AB', ]
> Error: subscript out of bounds
>  > jjdf['AB',]
>     xyz tuv qrs
> ABC   1   3   5
>  > jjmat[, 'tu']
> Error: subscript out of bounds
>  > jjdf[, 'tu']
> Error in "[.data.frame"(jjdf, , "tu") : undefined columns selected
> 
> The questionable behaviour is that partial matching of dimnames
> is not allowed except for the rows in data frames.
> 
> (This is 1.8.0 alpha -- 1.7 would have given NULL when the
> column of a data frame was partially matched.)
> 
> Without good arguments to the contrary, I would lean toward
> partial matching not being allowed at all.  (And so would my
> client who got confused about this -- which is the reason I started
> looking at it.)

Hmm, I'm inclined to agree, but the pmatch in "[.data.frame" does seem
pretty deliberate.

-- 
   O__  ---- Peter Dalgaard             Blegdamsvej 3  
  c/ /'_ --- Dept. of Biostatistics     2200 Cph. N   
 (*) \(*) -- University of Copenhagen   Denmark      Ph: (+45) 35327918
~~~~~~~~~~ - (p.dalgaard@biostat.ku.dk)             FAX: (+45) 35327907


[Rd] partial matching in data frame subscripting
Peter Dalgaard BSA