[R] 1-pnorm values in a table

Richard.Cotton at hsl.gov.uk Richard.Cotton at hsl.gov.uk
Thu Mar 6 16:32:30 CET 2008


>   I've read in a csv file (test.csv) which gives me the following table:
> 
>            Hin1     Hin2   Hin3    Hin4   Hin5   Hin6
> HAI1  9534.83  4001.74 157.16 3736.93 484.60  59.25
> HAI2 13272.48  1519.88  36.35   33.64  46.68  82.11
> HAI3 12587.71  5686.94 656.62  572.29 351.60 136.91
> HAI4 15240.81 10031.57 426.73  275.29 561.30 302.38
> HAI5 15878.32 10517.14  18.93   22.00  16.91  21.17
> 
>   I would like to find a way of finding the 1-pnorm of each value in
> the table based on the mean and sd of the data only in the column in
> which the value lies. I can do it using a for loop, but would like 
> to know if it can be done using e.g. apply or something similar, so 
> that the whole table is printed out with the 1-pnorm values.

Try:
nrows <- 5
 mm <- matrix(rnorm(30),nrow=nrows)
sd.by.col <- apply(mm,2,sd)
mean.by.col <- apply(mm,2,mean)
values <- 1-mapply(pnorm, q=as.vector(mm), mean=rep(mean.by.col, nrows)), 
sd=rep(sd.by.col, nrows)))
values <- matrix(values, nrow=5)

>   p.s. I know I'm asking a lot, but ideally, I'd like to print out 
> the table with those 1-pnorm values only if they are in the right 
> hand tail (i.e. >= mean) and if not nothing or NA be written.

values[values<.5] <- NA

Regards,
Richie.

Mathematical Sciences Unit
HSL


------------------------------------------------------------------------
ATTENTION:

This message contains privileged and confidential inform...{{dropped:20}}



More information about the R-help mailing list