2015-11-27 59 views
0

我分配了一个矩阵与Ĵ不同的名称:标与分配产生的矩阵()

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(),但似乎没有任何工作。我不知道我必须准确搜索并找不到解决方案。你可以帮我吗?

+0

约'得到(paste0( “PCA”,J,什么 “FAVAR_fcst” ,sep =“”))[,2]' –

+1

如何阅读'assign'的帮助页面,特别是示例的最后部分? –

+0

谢谢你,这会很容易...... – nelakell

回答

1

您可以使用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 
+2

大多数情况下,另一种解决方案是将矩阵放在列表中! –