带有由 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
另一种解决方案是结合使用 eval
和 as.symbol
:
eval(as.symbol(paste0("pca", j,".FAVAR_fcst", sep="")))[,2]
# [1] NA NA NA NA NA NA NA NA NA NA NA NA
我给一个随 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
另一种解决方案是结合使用 eval
和 as.symbol
:
eval(as.symbol(paste0("pca", j,".FAVAR_fcst", sep="")))[,2]
# [1] NA NA NA NA NA NA NA NA NA NA NA NA