【发布时间】:2014-07-09 23:55:34
【问题描述】:
我已经阅读过关于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) # compute coefficient matrices
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 将具有值“gap”,因此我想要 var$varresult$gap$coefficients 的值。
var$varresult 由“lm”类的元素组成。也许解决方案很简单,我只是强调看到它。 希望有人能帮忙。
编辑: 对于一个小的示例数据集:
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) 你在用
x做什么? (2) 您只是从循环的最后一次迭代中返回y- 但您还没有解释您实际上要做什么以及您当前努力的哪些方面没有奏效。 -
我觉得有更好的方法来实现你所追求的。您能否为我们提供一个可重复的小示例和所需的输出?
-
我每天都使用 R 6 年了,从未发现有必要使用
assign。可能有一种更像 R 的做事方式。你真正的问题是什么? -
是的,我只是在这个例子中提取了最后一个系数矩阵。当然,这不是我以后打算在这里做的。问题是我不能使用 var$varresult$d$coefficients ,其中 d 将是第一个 lm 对象的“间隙”。制作一个可重现的例子并不容易,因为我使用了一个非常大的 VAR 估计结果:/
-
要明确的实际问题是,我怎样才能检索对象的值,如果我在其名称中使用变量...