我已经阅读了有关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
马丁
答案 0 :(得分:1)
paste
在字符串中构造嵌套变量访问是完全错误的方法。
您遗失的是x$y
也可以写为x$['y']
(或x$[['y']]
,这取决于您是希望列表中的单个值还是列表中的列data.frame),此处'y'
是字符串。所以你可以这样写:
y <- as.matrix(var$varresult[[d]]$coefficients)
(假设var$varresult
是一个列表)