带有由 assign() 生成的矩阵的下标

Subscript with matrix generated by assign()

我给一个随 j:

变化的名字分配了一个矩阵
j <- 2L
assign(paste0("pca", j,".FAVAR_fcst", sep=""), matrix(ncol=24, nrow=12)) 

这非常简洁。然后我尝试访问该矩阵的一列

paste0("pca", j,".FAVAR_fcst", sep="")[,2]

并得到以下错误:

Error in paste0("pca", j, ".FAVAR_fcst", sep = "")[, 2] : incorrect number of dimensions

我尝试了 cat()print()capture.output() 的几种变体和组合,但似乎没有任何效果。我不确定我必须准确搜索什么并且找不到解决方案。你能帮助我吗?

您可以使用 get :

get(paste0("pca", j,".FAVAR_fcst", sep="")) # for the matrix

get(paste0("pca", j,".FAVAR_fcst", sep=""))[,2] # for the column
# [1] NA NA NA NA NA NA NA NA NA NA NA NA

另一种解决方案是结合使用 evalas.symbol :

eval(as.symbol(paste0("pca", j,".FAVAR_fcst", sep="")))[,2]
# [1] NA NA NA NA NA NA NA NA NA NA NA NA