有人可以解释R的基本方法吗?

时间:2019-01-11 02:11:11

标签: r

我来自Python和C ++的背景,R似乎使用了我不了解的魔术。我希望有人能够给我一些有关它如何工作的见解。

我的任务是对大约3,400,000个数据点的小节中的每一行应用一种算法,并且来自C ++,我想遍历表并手动进行计算并将其输入小节中:

select * from x

该功能有效,但估计大约需要9个小时。浏览一些参考书后,我发现只需使用“ all <-left_join(all,height,by =“ lake_id”)“即可完成相同的操作。不到一秒的时间便完成了,看来所有3,400,000个数据点都是正确的。我能想到的唯一方法是通过迭代,所以我不知道那小段代码是如何这么快完成的。 有人可以向我解释这些小技巧的魔力吗?

1 个答案:

答案 0 :(得分:1)

当处理变量时,

R的魔力是 vectorized 方法。与编写执行相同操作的本机循环结构相比,much faster更为重要。

向量化有时使用回收来确保数据结构具有相同的大小,以便更快地执行操作。元素分配(如您的示例中那样)往往需要变量的副本,这会减慢处理速度。