使用表达式自动生成矢量(X [' i,n'])

时间:2015-11-28 19:23:49

标签: r vector indexing expression rep

我试图生成长度为n的向量,如下所示:

(expression(X['n,n'],.....,X['1,n']))

例如:

n <- 3

我希望:

(表达式(X [&#39; 3,3&#39;],X [&#39; 2,3&#39;],X [&#39; 1,3&#39;]))< / p>

我尝试了以下内容:

n <- 10
y<- c()


for (i in 1:n){
  y[i] <- rep(expression(X['i,n']),1)
}

y

输出:

expression(X["i,n"], X["i,n"], X["i,n"], X["i,n"], X["i,n"], 
    X["i,n"], X["i,n"], X["i,n"], X["i,n"], X["i,n"])

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:4)

在这里,我使用bquote构建单个表达式,然后使用c组合它们。

n<-5
do.call(c, 
    lapply(paste(n:1,n, sep=","), 
    function(x) 
        bquote(expression(X[.(x)]))
    )
 )
 # expression(X["5,5"], X["4,5"], X["3,5"], X["2,5"], X["1,5"])