我有一列用于“年”,一列用于“日”(儒略日),我想使用这些列来制作“日期”(2002-12-03 或任何格式都可以)。我发现了很多关于分手日期的 lubridate
文献,但我正在寻找如何将它们放在一起。
听起来很简单:
year day
2008 1
2008 2
2008 3
2008 4
到
year day date
2008 1 2008-1-1
etc.
最佳答案
如果你愿意,你可以使用基准日期而不是 lubridate
如果这是你的样本数据
dd<-data.frame(
year = rep(2008,4),
day = 1:4
)
然后就可以运行了
years <- unique(dd$year)
yearstarts <- setNames(as.Date(paste0(years, "-01-01")), years)
newdates <- yearstarts[as.character(dd$year)] + dd$day - 1
产生
cbind(dd, newdates)
# year day newdates
# 1 2008 1 2008-01-01
# 2 2008 2 2008-01-02
# 3 2008 3 2008-01-03
# 4 2008 4 2008-01-04
这是有效的,因为基 Date 类存储自特定标记值以来的天数。所以当你加 1 时,你在当前日期上加了一天。在这里,我假设您可能有多年的时间来确保正确计算每年第一天的日期值。
关于r - 使用 lubridate 将单独的 'year' 和 'day' 列转换为一个 'date' 列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24191286/