动态变量名称R.

时间:2014-05-21 11:10:26

标签: r variables var

我已经阅读了有关assign()命令的类似问题。但它对我不起作用。 这是我的代码:

masums <- function(var)
{
    lags <- var$p                    # number of lags in VAR
    eqn  <- length(var$varresult)    # number of equations in VAR
    dep  <- names(var$varresult)     # names of dependent variables

    for(i in 1:eqn) # einzelne Koeffizientenmatrizen berechnen
    {
        d <- dep[i]
        x <- paste("var$varresult$",d,"$coefficients",sep="")
        y <- as.matrix(GET THE VALUE OF "x" e.g. var$varresult$d$coefficients) # d="gap" for i=1

    }
    return(y)
}

示例:对于i = 1 d,将具有值&#34; gap&#34;,因此我想要var $ varresult $ gap $ coefficients的值。

var $ varresult由class&#34; lm&#34;的元素组成。也许解决方案很简单,我只是强调要看到它。 希望有人可以提供帮助。

编辑: 对于小示例数据集:

library(vars)
y <- c(100*rnorm(100))
x <- seq(1,100,1)

vardata <- cbind(x,y)
var1    <- VAR(vardata,p=4,type="const")
var1$varresult$x$coefficients

马丁

1 个答案:

答案 0 :(得分:1)

paste在字符串中构造嵌套变量访问是完全错误的方法。

您遗失的是x$y也可以写为x$['y'](或x$[['y']],这取决于您是希望列表中的单个值还是列表中的列data.frame),此处'y'字符串。所以你可以这样写:

y <- as.matrix(var$varresult[[d]]$coefficients)

(假设var$varresult是一个列表)