【发布时间】:2014-09-15 09:07:50
【问题描述】:
下面应该找到整数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 中需要一秒钟?它似乎在遍历整个数组...
有没有办法让它在找到匹配项后中止,而不是继续不必要地迭代?
【问题讨论】:
-
这个问题可能值得一读:More efficient strategy for which or match
标签: r