[R] Subsetting a list

Martin Maechler maechler at stat.math.ethz.ch
Fri Oct 21 10:18:58 CEST 2005


>>>>> "PaCo" == Patrick Connolly <p.connolly at hortresearch.co.nz>
>>>>>     on Fri, 21 Oct 2005 13:26:08 +1300 writes:

    PaCo> On Wed, 19-Oct-2005 at 05:09PM +0200, Martin Maechler wrote:
    PaCo> |> Lists can have 'dim' attributes and hence be treated as arrays;
    PaCo> |> Note that this is pretty rarely used and not too well supported
    PaCo> |> by some tools, one could say even 'print()' :
    PaCo> |> 
    PaCo> |> > set.seed(0); L0 <- L <- lapply(rpois(12, lambda=3), seq); dim(L) <- 3:4; L
    PaCo> |>      [,1]      [,2]      [,3]      [,4]     
    PaCo> |> [1,] Integer,5 Integer,3 Integer,5 Integer,3
    PaCo> |> [2,] Integer,2 Integer,5 Integer,6 1        
    PaCo> |> [3,] Integer,2 Integer,2 Integer,4 Integer,2

    PaCo> for an occasion such as this, it can be clearer to do:

    >> transform(L)
    PaCo> X1            X2               X3      X4
    PaCo> 1 1, 2, 3, 4, 5       1, 2, 3    1, 2, 3, 4, 5 1, 2, 3
    PaCo> 2          1, 2 1, 2, 3, 4, 5 1, 2, 3, 4, 5, 6       1
    PaCo> 3          1, 2          1, 2       1, 2, 3, 4    1, 2

wow!  
Thank you Patrick!

Actually, that's identical to 

   data.frame(L)

which I honestly wouldn't have had expected to work for L.
Martin




More information about the R-help mailing list