[R] extracting the i-th row of a matrix in a list of lists
cberry at tajo.ucsd.edu
cberry at tajo.ucsd.edu
Fri Mar 9 18:15:14 CET 2012
Benilton Carvalho <beniltoncarvalho at gmail.com> writes:
> Hi,
>
> what is the proper of of "passing a missing value" so I can extract
> the entire i-th row of a matrix (in a list of lists) without
> pre-computing the number of cols?
>
> For example, if I know that the matrices have 2 columns, I can do the following:
>
> set.seed(1)
> x0 <- lapply(1:10, function(i) replicate(4, list(matrix(rnorm(10), nc=2))))
> lapply(lapply(x0, '[[', 3), '[', i=2, j=1:2)
>
> (given that if I don't specify j, I only get the first element)
>
> but if the number of columns are variable:
>
> x1 <- lapply(1:10, function(i) replicate(4, list(matrix(rnorm(100),
> nc=sample(c(2, 4, 5, 10), 1)))))
>
> what would be the value of J below?
>
> lapply(lapply(x1, '[[', 3), '[', i=2, j=J)
>
I think you want 'j=TRUE'. Note:
all.equal(
lapply(lapply(x0, '[[', 3), '[', i=2,j=TRUE),
lapply(lapply(x0, '[[', 3), '[', i=2, j=1:2)
)
HTH,
Chuck
> or should I really stick with:
>
> lapply(lapply(x1, '[[', 3), function(x) x[2,])
>
> ?
>
> Thank you very much,
> benilton
>
--
Charles C. Berry Dept of Family/Preventive Medicine
cberry at ucsd edu UC San Diego
http://famprevmed.ucsd.edu/faculty/cberry/ La Jolla, San Diego 92093-0901
More information about the R-help
mailing list