On 6/20/2006 6:24 PM, Gerald Jansen wrote:
> I would like to store and manipulate large sets of marker genotypes 
> compactly using "raw" data arrays. This works fine for vectors or
> matrices, but I run into the error shown in the example below as soon
> as I try to use 3 dimensional arrays (eg. animal x marker x allele).
> 
>> a <- array(as.raw(1:6),c(2,3))
>> a
>      [,1] [,2] [,3]
> [1,]   01   03   05
> [2,]   02   04   06
>> a[1,] <- raw(3)
>> a
>      [,1] [,2] [,3]
> [1,]   00   00   00
> [2,]   02   04   06
>> b <- array(as.raw(1:6),c(1,2,3))
>> b[1,,]
>      [,1] [,2] [,3]
> [1,]   01   03   05
> [2,]   02   04   06
>> b[1,1,] <- raw(3)
> Error: incompatible types (from raw to raw) in array subset assignment
> 
> I can work around this with computed indices, but I wonder if this is
> expected behaviour. 

I don't think so.  It is just an unimplemented case.

Using raw in this way is a fairly unusual thing to do, and you've come 
across a case nobody thought of implementing.

Indexing is a "primitive" function, so it's hard for you to fix this. 
It needs to be done in the internals of R (function ArrayAssign, in 
src/main/subassign.c, if you're interested).  I'll try to take a look 
and see if it looks reasonable to add.

Duncan Murdoch

______________________________________________
[email protected] mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html

Reply via email to