gpt4 book ai didi

r - 使用 difftime() 时如何提取时间单位?

转载 作者:行者123 更新时间:2023-12-03 15:44:55 24 4
gpt4 key购买 nike

我目前正在运行 for 循环代码,在每个循环结束时,我正在测量循环的持续时间并打印一条消息,告诉用户循环花费了多长时间。

要获得我正在使用的持续时间

duration <- difftime(end_time, start_time) 

这就是我打印声明的方式
print(paste("Loop", i, "took", duration, "to run.")). 

问题是每个循环的持续时间可能从 30 秒到 1 小时不等。将持续时间放在粘贴中只会将其变成一个没有单位的数字。

例如
print(paste("Loop", i, "took", duration, "to run.")). 
"Loop 5 took 10.5 to run"

我如何从 difftime() 获取单位以获得类似的东西: “循环 5 运行了 10.5 分钟。”

PS:有些人可能会建议通过在 difftime() 中声明“unit”参数来标准化持续时间,但我希望用户能够轻松理解持续时间,这就是我将单位设置为默认“自动”的原因。

最佳答案

调用 units来自 duration通过子集duration得到单位和数值:

print(paste("Loop", i, "took", round(duration[[1]], 2),  units(duration), "to run."))

下面是一个例子:
start_time <- Sys.time()

# few seconds later
end_time <- Sys.time()

duration <- difftime(end_time, start_time)

print(paste("Loop", 1, "took", round(duration[[1]], 2), units(duration), "to run."))

结果:
[1] "Loop 1 took 6.97 secs to run."

根据持续时间的范围,该单位将是自动的。请参阅此其他示例:
start_time <- Sys.time()

# few days later
end_time <- as.Date("2019-01-23")

duration <- difftime(end_time, start_time)

print(paste("Loop", 1, "took", round(duration[[1]], 2), units(duration), "to run."))

结果:
> print(paste("Loop", 1, "took", round(duration[[1]], 2),  units(duration), "to run."))
[1] "Loop 1 took 5.9 days to run."

关于r - 使用 difftime() 时如何提取时间单位?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54227985/

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