bogdan romocea wrote:
Dear R users,

I have a function (below) which encompasses several tests.
However, when I run it, only the output of the last test is
displayed. How can I ensure that the function root(var)
will run and display the output from all tests, and not
just the last one?

Thank you,
b.

root <- function(var)
{
#---Phillips-Perron
PP.test(var, lshort = TRUE) PP.test(var, lshort = FALSE)


#---Augmented Dickey-Fuller adf.test(var, alternative = "stationary", k =
trunc((length(var)-1)^(1/3)))


#---KPSS
kpss.test(var, null = "Level", lshort = TRUE)
kpss.test(var, null = "Trend", lshort = FALSE)
}



You should store all your results in a list and return the list:

root <- function(var) {
  # create empty list
  ret <- list()

  #---Phillips-Perron
  ret[[1]] <- PP.test(var, lshort = TRUE)
  ret[[2]] <- PP.test(var, lshort = FALSE)

  #---Augmented Dickey-Fuller
  ret[[3]] <- adf.test(var, alternative = "stationary",
                       k = trunc((length(var)-1)^(1/3)))

  #---KPSS
  ret[[4]] <- kpss.test(var, null = "Level", lshort = TRUE)
  ret[[5]] <- kpss.test(var, null = "Trend", lshort = FALSE)

  # give `ret' some meaningful names
  names(ret) <- c("PP1", "PP2", "ADF", "KPSS1", "KPSS2")

  # return list
  ret
}

results <- root(somevar)

HTH,

--sundar

P.S. Also note my indenting which makes code more readable, especially if you expect other to try to read it.

______________________________________________
[EMAIL PROTECTED] mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html

Reply via email to