写入文件所用时间,单位为 chosen/known
Write to file elapsed time, with chosen/known units
我正在使用 R 和 Rstudio。我完全是新手
我的意思是将循环的每次迭代中经过的时间写入文件。所以我定义了三个变量:start <- Sys.time()
(在代码的开头),以及类似的prevtime
和currtime
(在每次迭代的开始和结束)。
变量的值为(例如,最后一次迭代)
> currtime - start
Time difference of 5.486106 mins
> currtime - prevtime
Time difference of 1.239183 secs
R 自动设置单位。但是如果我执行
> write( currtime - start, file = "test.Rout", append = F )
> write( currtime - prevtime, file = "test.Rout", append = T )
我进了test.Rout
5.486106
1.239183
没有单位。
有没有办法强制写入文件的单位(write
),例如,全部为秒,所以没有歧义?
我想我可以扫描 currtime - prevtime
的输出并找到单位,但我确信有一种非常简单的方法可以做到这一点。
我想我也可以使用 system.time(*{mycommands}*)
,但我认为分配变量会更容易,因为我可能想在循环中间定义时间点,并获得各种时间差。
尝试分离单位并将它们组合成时间值:
start <- Sys.time()
currtime <- start + 180
diff.time <- currtime - start
timediff <- paste(diff.time, attr(diff.time, "units"))
write(timediff, file = "test.Rout", append = F )
说明
对象 diff.time
属于 class difftime
。当您将其写入文件时,属性将被删除。检查 str(diff.time)
以查看结构:
str(diff.time)
Class 'difftime' atomic [1:1] 3
..- attr(*, "units")= chr "mins"
我们要找的属性是"units"
,它的值是"mins"
。我们可以提取该属性并将其 paste
到时间差。
检查属性
我们可以用attr("object", "name of attribute")
检查属性:
attr(diff.time, "units")
[1] "mins"
我们也可以检查attributes
和子集列表样式:
attributes(diff.time)
$units
[1] "mins"
$class
[1] "difftime"
我正在使用 R 和 Rstudio。我完全是新手
我的意思是将循环的每次迭代中经过的时间写入文件。所以我定义了三个变量:start <- Sys.time()
(在代码的开头),以及类似的prevtime
和currtime
(在每次迭代的开始和结束)。
变量的值为(例如,最后一次迭代)
> currtime - start
Time difference of 5.486106 mins
> currtime - prevtime
Time difference of 1.239183 secs
R 自动设置单位。但是如果我执行
> write( currtime - start, file = "test.Rout", append = F )
> write( currtime - prevtime, file = "test.Rout", append = T )
我进了test.Rout
5.486106
1.239183
没有单位。
有没有办法强制写入文件的单位(write
),例如,全部为秒,所以没有歧义?
我想我可以扫描 currtime - prevtime
的输出并找到单位,但我确信有一种非常简单的方法可以做到这一点。
我想我也可以使用 system.time(*{mycommands}*)
,但我认为分配变量会更容易,因为我可能想在循环中间定义时间点,并获得各种时间差。
尝试分离单位并将它们组合成时间值:
start <- Sys.time()
currtime <- start + 180
diff.time <- currtime - start
timediff <- paste(diff.time, attr(diff.time, "units"))
write(timediff, file = "test.Rout", append = F )
说明
对象 diff.time
属于 class difftime
。当您将其写入文件时,属性将被删除。检查 str(diff.time)
以查看结构:
str(diff.time)
Class 'difftime' atomic [1:1] 3
..- attr(*, "units")= chr "mins"
我们要找的属性是"units"
,它的值是"mins"
。我们可以提取该属性并将其 paste
到时间差。
检查属性
我们可以用
attr("object", "name of attribute")
检查属性:attr(diff.time, "units") [1] "mins"
我们也可以检查
attributes
和子集列表样式:attributes(diff.time) $units [1] "mins" $class [1] "difftime"