R 加载用于估算的变量名称,形成一个包含空条目的矩阵
我想把用于估算的变量的名称加载到一个矩阵中。如果矩阵的所有行都包含变量名,那么这种方法非常有效。但是,我想测试所有不同的组合,如下面的代码所示。这里有些行只包含“”。如果有一行不包含变量名,则会出现错误。 是否有方法从包含空条目的矩阵加载名称R 加载用于估算的变量名称,形成一个包含空条目的矩阵,r,variables,matrix,var,cross-product,R,Variables,Matrix,Var,Cross Product,我想把用于估算的变量的名称加载到一个矩阵中。如果矩阵的所有行都包含变量名,那么这种方法非常有效。但是,我想测试所有不同的组合,如下面的代码所示。这里有些行只包含“”。如果有一行不包含变量名,则会出现错误。 是否有方法从包含空条目的矩阵加载名称 library("vars") # required for VAR analysis Data <- data.table( A=c(1:100), B=c(2:102), C=c(3:103) ) VARIABLES.Mat
library("vars") # required for VAR analysis
Data <- data.table(
A=c(1:100),
B=c(2:102),
C=c(3:103)
)
VARIABLES.Matrix <- rbind(
c("A","B","C"),
c("A","B",""),
c("A","",""),
c("A","","C"),
c("","","C"),
c("","B","C")
)
for (i in 1:nrow(VARIABLES.Matrix)){
VARselect(Data[, as.matrix(VARIABLES.Matrix)[i,1:3], with=F], lag.max = 3)
}
# This works fine
VARselect(Data[, as.matrix(VARIABLES.Matrix)[1,1:3], with=F], lag.max = 3)
# This does not work, which is related to ""
VARselect(Data[, as.matrix(VARIABLES.Matrix)[3,1:3], with=F], lag.max = 3)
VAR分析所需的库(“VAR”)#
Data我的问题是:为什么需要坚持从矩阵中加载变量,为什么不从列表中加载变量,列表中的元素只是要使用的变量的名称?像这样:
library("data.table")
library("vars") # required for VAR analysis
Data <- data.table(
A=c(1:101),
B=c(2:102),
C=c(3:103)
)
VARIABLES.List <- list(
c("A","B","C"),
c("A","B"),
c("A"),
c("A","C"),
c("C"),
c("B","C")
)
for (VARS in VARIABLES.List){
VARselect(Data[, VARS], lag.max = 3)
}
一种解决方案是使用以下命令作为VARselect的输入:as.matrix(VARIABLES.matrix)[i,1:3][as.matrix(VARIABLES.matrix)[i,1:3]!=“”]
lapply(VARIABLES.List, function(VARS) VARselect(Data[, VARS], lag.max = 3))