Subarrays
Tony Plate <tplate at acm.org> writes:
Question for language experts: is this the best way to create and manipulate R language expressions that contain empty arguments, or are there other preferred ways?
It's generally a pain anyways... One possible alternative is to use TRUE instead
ix <-rep(list(T),4)
ix[c(1,4)] <- c(3,2)
do.call("[",c(list(v),ix))
[,1] [,2] [,3] [,4]
[1,] 67 83 99 115
[2,] 71 87 103 119
[3,] 75 91 107 123
[4,] 79 95 111 127
The alist() function can be used to generate the missing argument in a
somewhat clean way. E.g.,
ix <- as.list(dim(v))
ix[c(1,4)] <- c(3,2)
ix[-c(1,4)] <- alist(a=) # name disappears
do.call("[",c(list(v),ix))
(BTW, it surprised me a little that you don't need as.list() on the
right hand side of ix[c(1,4)] <- c(3,2), anyone know the rationale?)
O__ ---- Peter Dalgaard Blegdamsvej 3 c/ /'_ --- Dept. of Biostatistics 2200 Cph. N (*) \(*) -- University of Copenhagen Denmark Ph: (+45) 35327918 ~~~~~~~~~~ - (p.dalgaard at biostat.ku.dk) FAX: (+45) 35327907