Генерация вектора автоматически с выражением (X['i,n'])
Я пытаюсь сгенерировать вектор длины n, который должен выглядеть следующим образом:
(expression(X['n,n'],.....,X['1,n']))
Так, например:
n <- 3
Я хочу иметь:
(Выражение (Х ['3,3'], Х ['2,3'], Х ['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"])
Как я могу решить это?
1 ответ
Решение
Здесь я использую 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"])