我的第一个 R 问题还没有在任何论坛上讨论过,显然......考虑我的假数据集:
A<-matrix(c(1,2,3,4,5,2,3,4,5,6,3,4,5,6,7),5,3)
a<-c(2,4,6,8,9)
我想在 a 上回归 A 的每一列并执行 systemfit 来测试一些限制,例如:
system.1<-list(A[,1]~a,A[,2]~a,A[,3]~a)
systemfit(system.1)
现在我的问题是我的“真实”矩阵 A 有数百列。我正在努力创建一个 systemfit 接受的列表。我想出了以下不可行的代码:
varlist=NULL
for (i in 1:3){varlist[i] <- paste("A[,",i,"] ~ a",sep="")}
models <- lapply(varlist, function(x){
systemfit(substitute(j, list(j = as.name(x))))
})
如果你打
substitute(j, list(j = as.name(varlist)))
你可以看到解决方案
`A[,1] ~ a`
包含似乎导致 systemfit 麻烦的 `` 符号,因为它不被接受为公式。因此问题似乎是按列循环,但我没有看到手头数据集的任何替代方案......有什么想法吗?
任何帮助将不胜感激!
谢谢!