2011-05-03 58 views
4

所以很明显,一种向量化函数的方法是在函数内部 - 明确地迭代输入或利用已被矢量化的其他函数。有没有一种方法可以将函数标记或标记为矢量化处理,以便迭代由R平台管理?类比将是c#中的属性或Java中的注释。我告诉R这个函数应该被视为矢量化的,并且每次输入一个输入到函数中,构造矢量输出?或者我只是在错误地思考这件事?R - 哪里可以实现矢量化?

+2

可能不正确。你不告诉R函数是矢量化的;这来自您如何编写函数以及您在其中使用了哪些R功能。在R中,我不认为遍历输入在R-sense中是真正被矢量化的 - 即使使用了'apply()'系列,你也只是隐藏了循环(虽然在我听到:-)之前有例外)。 – 2011-05-03 16:31:14

+2

在R inferno的第3章中有一些有用和有趣的观察: http://lib.stat.cmu.edu/S//Spoetry/Tutor/R_inferno.pdf – Andrie 2011-05-03 16:35:55

+0

@Andrie - 很棒的资源!期待阅读此PDF – SFun28 2011-05-03 17:57:16

回答

1

您可以使用Vectorize函数(http://stat.ethz.ch/R-manual/R-patched/library/base/html/mapply.html)使该函数成为向量。

但是在这里它只是使用mapply函数来做矢量化。正如加文所说,你只是隐藏了循环。