Hello,

And you really don't need colnames(ccc1) <- NULL, there's a USE.NAMES argument to mapply. Just set it to FALSE.

Rui Barradas

Em 08-06-2013 18:28, arun escreveu:
HI,
You could also use:

set.seed(24)
aaa <- matrix(rnorm(60), ncol=3)
bbb <- matrix(runif(15), ncol=3)
ccc1<- mapply(quantile,as.data.frame(aaa),as.data.frame(bbb))
ccc <- sapply(1:dim(aaa)[2], function(i) quantile(aaa[, i], bbb[, i])) #Jean's 
solution

colnames(ccc1)<-NULL

   identical(ccc,ccc1)
#[1] TRUE
A.K.



----- Original Message -----
From: "Adams, Jean" <jvad...@usgs.gov>
To: "Parodi, Pietro" <pietro.par...@willis.com>
Cc: "r-help@r-project.org" <r-help@r-project.org>
Sent: Saturday, June 8, 2013 9:49 AM
Subject: Re: [R] Help with multiple use of "quantile"

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.


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


______________________________________________
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