[R] how does a valid subscript can produce an "subscript out of bounds" error?

Witold E Wolski wewolski at gmail.com
Sat Jul 5 16:19:11 CEST 2014


Thank you. You example helped to FIX IT.

The problem is I guess somehow related to:
> class(msexp$pepinfo$transition_group_id)
[1] "factor"

and the whole R type conversion , riddle.

For subscripts my intuition is:  either require integer or do the
"cast" to the rowname type (character).
However, it seems that R somehow prefers to cast factors to integers...

it seems that %in% "casts" both vectors to the same type. But to which one?

Oh, I guess all this is neatly explained in the R standard ... but
websearching for it just returns:
standard deviation


a frustrated R user.

On 5 July 2014 02:18, Duncan Murdoch <murdoch.duncan at gmail.com> wrote:
> On 04/07/2014, 6:35 PM, Witold E Wolski wrote:
>> how does a valid subscript (see first 2 lines) can produce an
>> "subscript out of bounds" error (see line 4)?
>>
>>
>> 1> sum(!rownames(msexp$rt) %in% msexp$pepinfo$transition_group_id)
>> [1] 0
>> 2> sum(!msexp$pepinfo$transition_group_id %in% rownames(msexp$rt))
>> [1] 0
>> 3> class(msexp$rt)
>> [1] "matrix"
>> 4> msexp$rt = as.matrix(msexp$rt[msexp$pepinfo$transition_group_id,])
>> Error in msexp$rt[msexp$pepinfo$transition_group_id, ] :
>>   subscript out of bounds
>>>
>>
>
>> x <- matrix(1,1,1)
>> rownames(x) <- colnames(x) <- "23"
>> 23 %in% rownames(x)
> [1] TRUE
>> x[23,]
> Error in x[23, ] : subscript out of bounds
>



-- 
Witold Eryk Wolski



More information about the R-help mailing list