I know there are many answers available about this question. But I did not have success with any of those. I am trying to view the source code of the irf
function available in the vars
package of R. Here is what I have tried:
library(vars)
methods(irf)
vars:::irf.varest
It yields the following output.
function (x, impulse = NULL, response = NULL, n.ahead = 10, ortho = TRUE,
cumulative = FALSE, boot = TRUE, ci = 0.95, runs = 100, seed = NULL,
...)
{
if (!(class(x) == "varest")) {
stop("\nPlease provide an object of class 'varest', generated by 'VAR()'.\n")
}
y.names <- colnames(x$y)
if (is.null(impulse)) {
impulse <- y.names
}
else {
impulse <- as.vector(as.character(impulse))
if (any(!(impulse %in% y.names))) {
stop("\nPlease provide variables names in impulse\nthat are in the set of endogenous variables.\n")
}
impulse <- subset(y.names, subset = y.names %in% impulse)
}
if (is.null(response)) {
response <- y.names
}
else {
response <- as.vector(as.character(response))
if (any(!(response %in% y.names))) {
stop("\nPlease provide variables names in response\nthat are in the set of endogenous variables.\n")
}
response <- subset(y.names, subset = y.names %in% response)
}
irs <- .irf(x = x, impulse = impulse, response = response,
y.names = y.names, n.ahead = n.ahead, ortho = ortho,
cumulative = cumulative)
Lower <- NULL
Upper <- NULL
if (boot) {
ci <- as.numeric(ci)
if ((ci <= 0) | (ci >= 1)) {
stop("\nPlease provide a number between 0 and 1 for the confidence interval.\n")
}
ci <- 1 - ci
BOOT <- .boot(x = x, n.ahead = n.ahead, runs = runs,
ortho = ortho, cumulative = cumulative, impulse = impulse,
response = response, ci = ci, seed = seed, y.names = y.names)
Lower <- BOOT$Lower
Upper <- BOOT$Upper
}
result <- list(irf = irs, Lower = Lower, Upper = Upper, response = response,
impulse = impulse, ortho = ortho, cumulative = cumulative,
runs = runs, ci = ci, boot = boot, model = class(x))
class(result) <- "varirf"
return(result)
}
<bytecode: 0x0000028e2dd6ff38>
<environment: namespace:vars>
This only a partial solution. I want to see the source code of the .irf
function (in the line irs <- .irf(x = x, impulse = impulse, response = response,
). How do I do that?