gpt4 book ai didi

r - 为什么 R 匹配函数这么慢?

转载 作者:行者123 更新时间:2023-12-04 12:03:58 25 4
gpt4 key购买 nike

下面应该找到整数 1 的第一个实例的位置:

array <- rep(1,10000000)
system.time(match(1,array))

这返回
   user  system elapsed
0.720 1.243 1.964

如果我使用大小为 100 的数组运行相同的任务我明白了:
   user  system elapsed
0 0 0

由于它应该做的只是查看数组中的第一个值并返回匹配项,因此无论数组的大小如何,所花费的时间都应该是查找和比较的时间。如果我用低级语言编写它,无论数组大小如何,它都会花费几个时钟周期(一微秒或更短?)。为什么在 R 中需要一秒钟?它似乎在遍历整个数组......

有没有办法让它在找到匹配项后中止,而不是继续不必要地迭代?

最佳答案

原因是R实际上并没有做线性搜索,而是建立了一个哈希表。如果您正在搜索多个项目,这很有效,但如果您只搜索一个数字,则效果不佳。下面是函数的分析:

enter image description here

如果您在数组中搜索单个整数,则“更好”的实现可以使用线性搜索。我想那会更快。

关于r - 为什么 R 匹配函数这么慢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24923071/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com