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

Generate Vector automatically with expression(X['i,n'])

我正在尝试生成一个长度为 n 的向量,应该如下所示:

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

例如:

n <- 3

我想要:

(表达式(X['3,3'],X['2,3'],X['1,3']))

我尝试了以下方法:

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"])

我该如何解决这个问题?

这里我使用 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"])