On Apr 17, 2012, at 12:13 AM, Worik R 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.

This behavior is not the result of limitation in how R's sapply might have processed a purely numeric set of results, but is because you (probably) returned a hetergeneous set of classes rom you inner function. Assuming that "last" is actually function(x){tail,1}, then the structure of M is

str(M)
List of 6
 $ : chr "aaa"
 $ : num 0.224
 $ : chr "bbb"
 $ : num 0.768
 $ : chr "ccc"
 $ : num 0.904
 - attr(*, "dim")= int [1:2] 2 3
 - attr(*, "dimnames")=List of 2
  ..$ : chr [1:2] "Name" "Value"
  ..$ : chr [1:3] "aaa" "bbb" "ccc"

Had the result been a more homogeneous collection, I sapply would have returned an array of atomic numeric vectors. Try just returning a number:

> M2 <- sapply(Qm, function(nm, DF){last(DF[DF[, "Name"]==nm,"Value"])}, DF)
> class(M)
[1] "numeric"
> str(M2)
 Named num [1:3] 0.6184 0.0446 0.3605
 - attr(*, "names")= chr [1:3] "aaa" "bbb" "ccc"

--
David.

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@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.

David Winsemius, MD
West Hartford, CT

______________________________________________
R-help@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.

Reply via email to