[Rd] partial matching in data frame subscripting

Patrick Burns pburns at pburns.seanet.com
Thu Sep 25 11:42:35 MEST 2003



Peter Dalgaard BSA wrote:

>Patrick Burns <pburns at 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.
>
Yes, the clarity of the behaviour is what made this a question and not a
bug report.  However, there is a bug in there somewhere as this is not
documented (very well at least).

>
>  
>



More information about the R-devel mailing list