[R] apply on function with vector as result
Sarah Goslee
sarah.goslee at gmail.com
Fri Dec 9 12:54:54 CET 2011
This would be a whole lot easier if we had a reproducible example,
or at least knew what your output data actually looked like, and an
example of what you *wanted* it to look like.
For instance, I'm confused by your description of your output data:
> c(c(1,2), c(3,4))
[1] 1 2 3 4
c(c(), c()) is a single vector already.
But when I try an approximation of your non-reproduclble example, that's
not what I get anyway. I get the expected matrix:
> myfunc <- function(x) {a=x; b=x-1; c(a, b) }
> ys <- sapply(1:5, myfunc)
> ys
[,1] [,2] [,3] [,4] [,5]
[1,] 1 2 3 4 5
[2,] 0 1 2 3 4
And from there, it's not at all clear what you mean by "one vector" -
in what order? All of the a then all of the b values? abab?
as.vector(ys) and as.vector(t(ys)) will accomplish those.
Or do you mean simply
as <- ys[1,]
bs <- ys[2,]
But all this is academic since I don't know what your data look like, really.
Sarah
On Fri, Dec 9, 2011 at 6:40 AM, Christof Kluß <ckluss at email.uni-kiel.de> wrote:
> Hi,
>
> a have some code like
>
> myfunc <- function(x) { ...; return c(a,b) }
>
> ys <- sapply(0:100,myfunc)
>
> so I get something like c(c(a1,b1),c(a2,b2),...)
>
> But now I need the "as" and "bs" in one vector
>
> as <- apply(ys, function(c(a,b)) a)
> bs <- apply(ys, function(c(a,b)) b)
>
> Can you help me with the correct syntax, instead of my pseudo code?
>
> thx
> Christof
>
--
Sarah Goslee
http://www.functionaldiversity.org
More information about the R-help
mailing list