我的代码如下所示:
unemp <- c(1:10)
bsp_li <- list(c(1:10),c(11:20),c(21:30))
var_data_rep <- lapply(bsp_li, function(x) {cbind(as.numeric(x), as.numeric(unemp))} ) # Create VAR data matrices
var_data_rep2 <- lapply(var_data_rep, function(x) {colnames(x) = c("rGDP", "U"); return(x)}) # Name columns
var_data_rep_ts <- lapply(var_data_rep2, function(x) {ts(x, frequency=1, start=c(1977))} ) # Make it ts again
var_data_rep_lag <- lapply(var_data_rep_ts, function(x) {VARselect(x, lag.max = 5, type = "const")} ) # Take lag with lowest SC criteria (VAR.pdf)
VARgdp_rep <- lapply(var_data_rep_ts, function(x) {VAR(x, p = var_data_rep_lag$x$selection[['SC(n)']], type = "const"); return(x)} ) # Lag=lowest SC criteria from var_data_rep_lag
如果我只运行最后一行,r总是会给我错误:
Error in if ((dimension < 1) | (dimension > n)) stop("wrong embedding dimension") : argument is of length zeroCalled from: embed(y, dimension = p + 1)
但是,如果我用
Source
运行它,那么它似乎可以工作..有什么建议吗? 最佳答案
这似乎可行(至少不会引发任何错误):
VARgdp_rep <-
lapply(index(var_data_rep_ts),
function(x) {
res <- VAR(var_data_rep_ts[[x]], p =
var_data_rep_lag[[x]]$selection[['SC(n)']], type = "const");
return(res)
}
)
在您的代码中,return(x)很奇怪,因为在执行VAR计算之后..您只是将x withc传递给了函数。
$ x在这里似乎没有任何意义。
关于r - if((dimension <1)|(dimension> n))stop (“wrong embedding dimension”): argument is of length zero中的错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48302872/