【发布时间】:2018-12-05 12:03:11
【问题描述】:
假设出于分析目的,我可以使用其中任何一种,那么评估记录变换数据还是平方根变换数据是否更好的公平方法是什么?特别是,我试图了解在 R 中,如果我选择应用 log 或 sqrt 来转换数据是否重要,如果是这样,是否取决于数据的性质、整体大小等。
这是我最初使用的代码:
start.time = Sys.time()
for (x in 1:10000)
log(x)
end.time = Sys.time()
print(end.time - start.time)
start.time = Sys.time()
for (x in 1:10000)
sqrt(x)
end.time = Sys.time()
print(end.time - start.time)
但是,我开始怀疑它是否取决于数据的性质,所以我尝试了一些变化,例如使值更大或更小:
start.time = Sys.time()
for (x in 1:10000000)
log(x^8)
end.time = Sys.time()
print(end.time - start.time)
start.time = Sys.time()
for (x in 1:10000000)
sqrt(x^8)
end.time = Sys.time()
print(end.time - start.time)
在我尝试过的情况下,sqrt 总是比log 稍快,但我没有测试效率/复杂性的经验,并且想知道 是否有“正确”的方法来回答这个问题(1 ) 特别适用于 R (docs?) 和 (2) 更普遍?
例如,我想知道我上面尝试的一些失败是否是:
- 使用整数(浮点数的答案可能不同)
- 使用单调密集序列?
我最常见的问题是进行评估时什么重要,我需要了解 R 或我的硬件以智能方式提出这个问题?
谢谢!
【问题讨论】:
标签: r performance complexity-theory arithmetic-expressions