[R] Newbie that don't understand R code
Berend Hasselman
bhh at xs4all.nl
Mon Aug 17 20:37:47 CEST 2009
kfcnhl wrote:
>
> I got some R code that I don't understand.
>
> Question as comment in code
> //where is t comming from, what is phi inverse
>
> rAC <- function(name, n, d, theta){
> .................
> phi.inverse <- switch(name,
> clayton = function(t, theta)
> //where is t comming from, what is phi inverse
> {
> (1 + t)^(-1/theta)
> }
> ,
> gumbel = function(t, theta)
> {
> exp( - t^(1/theta))
> }
> ,
> frank = function(t, theta)
> {
> (-1/theta) * log(1 - (1 - exp( - theta)) * exp( - t))
> }
> ,
> BB9 = function(t, theta)
> {
> exp( - (theta[2]^theta[1] + t)^(1/theta[1]) + theta[2])
> }
> ,
> GIG = function(t, theta)
> {
> lambda <- theta[1]
> chi <- theta[2]
> psi <- theta[3]
> if (chi==0)
> out <- (1+2*t/psi)^(-lambda)
> else if (psi==0)
> out <- 2^(lambda+1)*exp(besselM3(lambda,sqrt(2*chi*t),log
> value=TRUE)-lambda*log(2*chi*t)/2)/gamma(-lambda)
> else
> out <- exp(besselM3(lambda,sqrt(chi*(psi+2*t)),logvalue=T
> RUE)+lambda*log(chi*psi)/2-besselM3(lambda,sqrt(chi*psi),logvalue=TRUE)-lambda*log(chi*(psi+2*t))/2)
> out
> }
> )
> phi.inverse( - log(U)/Y, theta)
> }
>
First of all: R comments start with # and not //
1. t comes from the argument of the function object returned when <name> has
the value clayton
clayton = function(t, theta)
####where is t comming from, what is phi inverse
{
(1 + t)^(-1/theta)
}
2. In phi.inverse <- switch(....) the value returned by the switch
expression is assigned to phi.inverse.
The switch expression appears to return a function object depending on
the value of the <name>
argument to rAC.
3. the code at the end of the rAC function contains two errors (spaces):
log value should be logvalue
T RUE should be TRUE
After corrections it appears to work.
Berend
--
View this message in context: http://www.nabble.com/Newbie-that-don%27t-understand-R-code-tp25009034p25011959.html
Sent from the R help mailing list archive at Nabble.com.
More information about the R-help
mailing list