Есть ли способ ссылаться на переменную, когда имя переменной содержит номер - PullRequest
0 голосов
/ 29 апреля 2019

В следующем присваивании: assign (paste ("orca", i, sep = ""), list_name [[i]]), имя переменной содержит число, основанное на значении i. Теперь, если я хочу выполнить операцию, скажем, orca1, orca2 до orcan. Как мне обратиться к нему, используя переменную (i) еще раз.

x <- 1
y <- 0
for (i in 1:10)
{
  x <- x*0.8
  y <- y + x*orca'i'
}

Я хочу добиться следующего:

y = 0,8 * orca1 + 0,8 ^ 2 * orca2 + 0,8 ^ 3 * orca3 + .. + 0,8 ^ 10 * orca10

Как мне это сделать? Есть ли другой способ сделать это также

Редактировать: я попытался использовать список следующим образом, поскольку я слышал, что это более подходящий способ использования следующим образом:

x <- seq(1:50)
y <- 1
orcasum <- 0
orca <- list()
for(i in 1:10)
{
  y <- y*0.8
  orca[i] <- y*lag(x,i)
  orcasum <- orcasum + orca[i]
}

Я попробовал приведенный выше код для достижения того же ожидаемого результата, что и раньше. Проблема, с которой я столкнулся здесь: «В orca [i] <- y * lag (x, i): количество заменяемых элементов не кратно длине замены». </p>

Как мне поступить сейчас?

1 Ответ

0 голосов
/ 29 апреля 2019

Вот краткая версия с использованием матрицы:

x <- seq(1:50)
orca <- matrix(NA, 50, 10)
for (i in 1:10) orca[, i] <- lag(x,i)

orcasum <- orca %*% (0.8^(1:10))

или генерация матрицы orca с помощью sapply()

x <- seq(1:50)
orca <- sapply(1:10, FUN=lag, x=x)
orcasum <- orca %*% (0.8^(1:10))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...