[R] Can a matrix have 'list' as rows/columns?
Henrik Bengtsson
hb at biostat.ucsf.edu
Tue Apr 17 07:51:35 CEST 2012
On Mon, Apr 16, 2012 at 9:13 PM, Worik R <worikr at gmail.com> wrote:
> After a lot of processing I get a matrix into M. I expected each row and
> column to be a vector. But it is a list.
Lists are also vectors, e.g.
> x <- list()
> is.vector(x)
[1] TRUE
> y <- vector("list", length=3)
> str(y)
List of 3
$ : NULL
$ : NULL
$ : NULL
>
See ?list
/HB
>
> R-Inferno says...
>
> "Arrays (including matrices) can be subscripted with a matrix of positive
> numbers. The subscripting matrix has as many columns as there are dimensions
> in the array—so two columns for a matrix. The result is a vector (not an
> array)
> containing the selected items."
>
> My version of R:
> version.string R version 2.12.1 (2010-12-16)
>
> Here is an example...
>
>> Qm <- c("aaa", "bbb", "ccc")
>> DF <- data.frame(Name=sample(Qm, replace=TRUE, size=22), Value=runif(22),
> stringsAsFactors=FALSE)
>> M <- sapply(Qm, function(nm, DF){last(DF[DF[, "Name"]==nm,])}, DF)
>> class(M)
> [1] "matrix"
>> class(M[,1])
> [1] "list"
>> class(M[1,])
> [1] "list"
>> M
> aaa bbb ccc
> Name "aaa" "bbb" "ccc"
> Value 0.4702648 0.274498 0.5529691
>> DF
> Name Value
> 1 ccc 0.99948920
> 2 aaa 0.51921281
> 3 aaa 0.10803943
> 4 aaa 0.82265847
> 5 ccc 0.83237260
> 6 bbb 0.88250933
> 7 aaa 0.41836131
> 8 aaa 0.66197290
> 9 ccc 0.01911771
> 10 ccc 0.99994699
> 11 bbb 0.35719884
> 12 ccc 0.86274858
> 13 bbb 0.57528579
> 14 aaa 0.12452158
> 15 aaa 0.44167731
> 16 aaa 0.11660019
> 17 ccc 0.55296911
> 18 aaa 0.12796890
> 19 bbb 0.44595741
> 20 bbb 0.93024768
> 21 aaa 0.47026475
> 22 bbb 0.27449801
>>
>
> [[alternative HTML version deleted]]
>
>
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
>
More information about the R-help
mailing list