当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《如何在函数中编写下标i?》经验,为你挑选了1个好方法。



1> Ben Bolker..:

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

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

推荐阅读
N个小灰流_701
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有