我可以使用 x
获得自 difftime
以来的时间,但最多只能间隔一周。
> difftime(Sys.Date(), "1977-04-05")
# Time difference of 13655.67 days
> difftime(Sys.Date(), "1977-04-05", units = "weeks")
# Time difference of 1950.81 weeks
除了手动计算之外,是否有函数可以获取自
x
以来的月份和年份?我看过这个问题 convert difftime time to years, months and days ,但两年前有人问过并回答过,我想现在可能会有一些新东西。
我想获取此信息的原因是将其添加到这个无用的函数中
> timeSinceBirth <- function(dob)
{
today <- Sys.Date()
s <- sapply(list(NULL, "weeks"), function(x) {
difftime(today, dob, units = x)
})
setNames(s, c("days", "weeks"))
}
> timeSinceBirth("1977-04-05")
# days weeks
# 13655.67 1950.81
我希望结果在
months
之后包含 years
和 weeks
最佳答案
您可以使用序列。所以像:
timeSinceBirth <- function(dob)
{
today <- Sys.Date()
s <- sapply(list("days", "weeks", "months", "years"), function(x) {
(length(seq(as.Date(dob), Sys.Date(), x)) - 1)
})
setNames(s, c("days", "weeks", "months", "years"))
}
> timeSinceBirth("1977-04-05")
days weeks months years
13657 1951 448 37
关于r - 扩展 difftime() 以包括月份和年份,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25495833/