【问题标题】:For loop for summation in RR中求和的for循环
【发布时间】:2021-06-05 16:23:02
【问题描述】:

假设我有以下总结。 【总结图】。 如何编写一个 for 循环,以便将值存储到 j = 1 到 j = m 的向量中。

我尝试了以下

theta1 <- 1
theta2 <- 2

z = c()
for(i in 1:j){
 z[i] <- sum(exp[(theta1 * j + theta2 * j)
}

但是,我得到一个长度为 j 的向量,只有相同的输出

【问题讨论】:

  • 嗨!请为我们提供一个小的、可重现的代码 sn-p,我们可以复制和粘贴它,以便更好地理解问题并测试可能的解决方案。您可以使用dput(YOUR_DATASET) 共享数据集,或者使用dput(head(YOUR_DATASET)) 共享较小的样本。 (有关详细说明,请参阅this answer。)

标签: r for-loop sum


【解决方案1】:

看看方程式,这可能就是您要找的。​​p>

首先,你从一个空向量z开始:

z = c()

使用您的等式术语,我们将索引称为j。然后,您可能需要一个从 1 到 mfor 循环(确保定义 m)。然后可以按如下方式计算每个元素:

for (j in 1:m) {
  z[j] <- exp((theta1 * j) + (theta2 * (j ^ 2)))
}

向量元素的最终总和将是:

sum(z)

由于exp矢量化,您可以考虑以下替代方案,而不是使用for 循环:

j <- 1:m
sum(exp((theta1 * j) + (theta2 * (j ^ 2))))

这应该提供相同的答案。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-02
    相关资源
    最近更新 更多