【发布时间】:2021-10-10 04:42:00
【问题描述】:
运行以下命令来测试 runif() 的运行速度:
start_time <- Sys.time()
runif(1)
end_time <- Sys.time()
run_times= as.numeric(as.difftime(end_time - start_time, units ="secs"))
run_times "0.3906578" 只需要几分之一秒
但是在 for 循环中运行它每次运行都会踢出 0:
nvec=c(1,100)
uni_time_vec=numeric(length(nvec))
for (i in 1:length(nvec)) {
start_time <- Sys.time()
runif(1) #hardcoded for testing
end_time <- Sys.time()
run_times= as.numeric(as.difftime(end_time - start_time, units ="secs"))
uni_time_vec[i] = run_times
}
发生了什么,我该如何解决?
【问题讨论】:
-
对我来说很好。我可以在控制台中看到
uni_time_vec.Runoptions(digits = 15)中非常小的值,然后重试。 -
嘿 Ronak,所以运行那条线并使用它更有帮助,我可以得到非常小的值而不是 0。但它只有在我创建错误时才有效(奇怪)。在 for 循环中,我不小心遗漏了一个右括号“for (i in 1:length(nvec) {”,它返回并出现意外错误,但完成了。当我将括号添加回去时,它会返回仅返回 0。