该diff
命令以R日期格式返回日期向量中日期之间的差异.我想控制返回的单位,但似乎它们是自动确定的,无法用参数控制它.这是一个例子:
> t = Sys.time()
> diff(c(t, t + 1))
Time difference of 1 secs
Run Code Online (Sandbox Code Playgroud)
但是:
> diff(c(t, t+10000))
Time difference of 1.157407 days
Run Code Online (Sandbox Code Playgroud)
"时间增量"对象有一个单位属性,但编写一堆条件来强制将所有内容强制为几天,几秒等等似乎很愚蠢.
Ian*_*ows 13
我不确定"一堆条件"是什么意思,只是手动更改单位.
> t = Sys.time()
> a <- diff(c(t,t+1))
> b <- diff(c(t, t+10000))
> units(a) <- "mins"
> units(b) <- "mins"
> a
Time difference of 0.01666667 mins
> b
Time difference of 166.6667 mins
Run Code Online (Sandbox Code Playgroud)
见?difftime
.如果你只需要用来diff
获得两次之间的差异(而不是更长的向量),那么,正如Dirk建议的那样,使用difftime
带units
参数的函数.
一个POSIXct
类型(通过调用创建Sys.time()
)总是使用小数秒以来的时代.
这些difftime()
功能只是为了您的阅读乐趣而不同地格式化.如果您实际指定了格式,则可以获得指定的内容:
R> difftime(t+ 10000,t,unit="secs")
Time difference of 10000 secs
R> difftime(t+ 10000,t,unit="days")
Time difference of 0.115741 days
R>
Run Code Online (Sandbox Code Playgroud)
我认为您需要difftime
在其中指定所需的单位.看到:
> difftime(Sys.time(), Sys.time()+10000)
Time difference of -2.777778 hours
> difftime(Sys.time(), Sys.time()+10000, units="secs")
Time difference of -10000 secs
Run Code Online (Sandbox Code Playgroud)