当变量名称中包含数字时,是否可以引用变量

时间:2019-04-29 11:33:25

标签: r

在以下分配中: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):要替换的项目数不是替换长度的倍数”。

我现在如何进行?

1 个答案:

答案 0 :(得分:0)

以下是使用矩阵的简短版本:

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