如何在函数中编写下标i?

时间:2019-11-18 15:41:10

标签: r

我尝试在R中编写以下功能: f(x)

当前,我有以下代码,但是我不明白如何表示下标i?

C:\oracle\11\

1 个答案:

答案 0 :(得分:7)

(至少)有两种方法可以执行此操作,显式(for-循环)和隐式(矢量化)方法。

for循环

function(x) {
   s <- 0
   for (i in seq_along(x)) {
      s <- s + (x[i]^4 - 16*x[i]^2 + 5*x[i])/2
   }
   s
}

(先前发布的答案建议您可以使用sapply(),但比显式的for循环要难一些……)

矢量化

由于R在向量化的^,*-+/) >这样,您可以一次在所有元素上计算此表达式,然后使用sum()函数。向量化的解决方案更快,更容易阅读(一旦您习惯了)。

function(x) {
   sum((x^4 - 16*x^2 + 5*x)/2)
}