Try this, Pietro ...

# example data
aaa <- matrix(rnorm(60), ncol=3)
bbb <- matrix(runif(15), ncol=3)

# calculate quantiles
ccc <- sapply(1:dim(aaa)[2], function(i) quantile(aaa[, i], bbb[, i]))
# change rownames
rownames(ccc) <- seq(dim(ccc)[1])

Jean


On Sat, Jun 8, 2013 at 8:20 AM, Parodi, Pietro <pietro.par...@willis.com>wrote:

> Hello
>
> I have a matrix aaa like this:
>
>            aa1       aa2       aa3
> [1,]  8371.417  27613.57  1170.466
> [2,] 14317.999  42421.82  3423.934
> [3,] 22026.466  59874.14  8103.084
> [4,] 33884.986  84506.34 19176.764
> [5,] 57954.968 129824.30 56097.310
>
> where each column represents an empirical distribution of random variates
> (normally the number of rows would be, say, 10,000 or 100,000) and a matrix
> bbb of percentiles like this:
>
> bbb
>
>            [,1]      [,2]      [,3]
> [1,] 0.70092980 0.8144194 0.6200732
> [2,] 0.77968803 0.5804948 0.5463661
> [3,] 0.01509415 0.9313509 0.8611973
> [4,] 0.22654757 0.6183386 0.4962867
> [5,] 0.36548835 0.6608696 0.3062784
> What I'd like to do is to apply the quantiles in the three columns of bbb
> to the columns of aaa independently, so as to obtain a matrix ccc such
> that, for example, ccc[3,1]=quantile(aaa[,1],bbb[3,1]). THe complete matrix
> is:
>
>
> ccc =    quantile(aaa[,1],bbb[1,1]), quantile(aaa[,2],bbb[1,2]),
> quantile(aaa[,3],bbb[1,3])
>             quantile(aaa[,1],bbb[2,1]), quantile(aaa[,2],bbb[2,2]),
> quantile(aaa[,3],bbb[2,3])
>             quantile(aaa[,1],bbb[3,1]), quantile(aaa[,2],bbb[3,2]),
> quantile(aaa[,3],bbb[3,3])
>             quantile(aaa[,1],bbb[4,1]), quantile(aaa[,2],bbb[4,2]),
> quantile(aaa[,3],bbb[4,3])
>             quantile(aaa[,1],bbb[5,1]), quantile(aaa[,2],bbb[5,2]),
> quantile(aaa[,3],bbb[5,3])
>
>
>
> Now if I only two vectors, it would be enough for me to define
> ccc=quantile(aaa,bbb). However, if I do this when aaa and bbb are matrix,
> quantile(aaa,bbb) does something else -- it gives the percentiles bbb of
> the whole set of matrix elements rather than considering separately the
> quantiles of the different columns.
>
> I suspect I'll need to use "apply" in some form but have been able to come
> up with the correct form.
>
> As you might have imagined, this arises in the  context of simulating
> random variables from different distribution in empirical form that are
> correlated through a copula.
>
> Thanks in advance for your help!
>
> Pietro
> _
>
> ______________________________________________________________________
>
> For information pertaining to Willis' email confidentiality and monitoring
> policy, usage restrictions, or for specific company registration and
> regulatory status information, please visit
> http://www.willis.com/email_trailer.aspx
>
> We are now able to offer our clients an encrypted email capability for
> secure communication purposes. If you wish to take advantage of this
> service or learn more about it, please let me know or contact your Client
> Advocate for full details. ~W67897
> ______________________________________________________________________
>
>         [[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.
>

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

Reply via email to