0

使用as.period我想知道年份、月份和日期的确切差异。但是,我总是得到等于零的月份值,它将月份转换为日期,如下所示:

library(lubridate)
 as.period((dmy("01/06/1981")- dmy("30/07/1979")),units="year")
estimate only: convert difftimes to intervals for accuracy
[1] "1y 0m 306d 18H 0M 0S"

我怎样才能得到相应的月份?以及如何格式化不显示小时、分钟和秒的输出?谢谢

4

1 回答 1

1

创建一个间隔,然后将其强制为 a period

library(lubridate)
ii <- new_interval(dmy("01/05/1981"),dmy("30/07/1979"))
as.period(ii,units="months")
[1] "-21m -1d 0H 0M 0S"

res <- as.period(ii,units="years")
[1] "-1y -9m -1d 0H 0M 0S"

编辑

我不认为你可以删除小时,分钟部分。但是您可以编写打印功能:

paste0(c(res@year,res@month,res@day),c('y','m','d'),collapse=' ')
"-1y -9m -1d"
于 2014-06-10T08:48:18.130 回答