循环通过R向量来应用公式

时间:2017-04-20 16:39:05

标签: r

我试图遍历两个向量并将一个公式应用于数据,但我无法弄清楚如何做我想做的事情......

基本上这里有一些样本数据......我需要引用两个向量...

v1 <- c(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17)
v2 <- c(0.01,0.06,0.11,0.16,0.21,0.26,0.31,0.36,0.41,0.46,0.51,0.56,0.61,0.66,0.71,0.76,0.81)

这就是我想申请的格式......这将是第一次......

(1+v2[2])^v1[2] / (1+(v2[1]^v1[1]))

第二次迭代将是......

(1+v2[3])^v1[3] / (1+(v2[2]^v1[2]))

所以我试图这样做,但我无法弄清楚如何迭代矢量索引...我正在尝试沿着这条线,但我无法通过计数器增加索引,例如,i。 ..

for (i in seq_along(v1) {
    i <- 0
    res[i] <- ((1+v2[2+i])^v1[2+i] / (1+(v2[1+i]^v1[1+i]))
    i <- i+1
}

完成循环后,我会得到以下输出......

> res
 [1] 1.112475 1.217187 1.323924 1.432501 1.542753 1.654534 1.767715 1.882178 1.997821 2.114550 2.232280 2.350938 2.470454 2.590767 2.711821 2.833564

我已经做了很多搜索,但我是空白的,有什么建议吗?

1 个答案:

答案 0 :(得分:1)

您可以使用res <- (1+v2[-1])^v1[-1] / (1+(v2[-17]^v1[-17]))

一次性完成此操作

基本上它使用长度为16的向量(v1和v2减去第一个和最后一个元素)并利用R的自然向量处理。