我的代码如下所示:

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/

10-12 05:41