为什么R代码带有{}
一般来说比那个更快()
,下面的例子?
n=10000000
w1=numeric(n)
w2=numeric(n)
r=rnorm(n)
t1=Sys.time()
for(i in 1:n)
w1[i]=((r[i]^2))*(1*1)
t1-Sys.time()
t1=Sys.time()
for(i in 1:n)
w2[i]={{r[i]^2}}*{1*1}
t1-Sys.time()
baptiste已经链接了雷德福·尼尔的博客在评论中。
但由于SE人们不喜欢外部网站的链接,所以让我引用作者本人的一个有趣评论(评论33):
是的,在 R 2.13.1 和最新的 R 2.14.1 中,括号仍然比大括号慢,尽管没有以前那么慢(我建议减少内置函数中的一般开销的补丁已合并在以后的版本中) ,从而减少了这种差异)。
括号没有理由变慢。我建议进行另一项更改(仅更改几行代码),以加快括号的速度。 Luke Tierney 回应说这个补丁决不应该被合并到 R 中,因为括号是一个运算符,就像 sqrt 一样,因此,实现括号的代码中不应有任何内容与 sqrt 等运算符的实现方式不同。
知道,( )
似乎是一个运算符 - 很像一个基本上什么都不做的函数 -
while { }
是一种语言构造。
括号里( )
合并一些所有操作员都通用的开销代码,这些代码实际上对他们来说是不需要的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)