重新分配起始朱利安日期(7月1日=朱利安日期1,南半球)

时间:2015-02-06 01:21:40

标签: r date julian chron

我的数据集包括全年不同阶段的各种观察结果。

  • year收集样本时。
  • site衡量地点
  • 测量r期间
  • Class物理阶段
  • date测量日期
  • Julian朱利安日期

最终测量通常发生在新年初,即南半球的夏季。 (例如,夏天是冬天,春天是秋天)。

year site Class date Julian 1 2009 10C Early 2008-09-15 259 2 2009 10C L2 2008-09-29 273 3 2009 10C L3 2008-12-15 350 4 2010 10C Early 2009-08-31 243 5 2010 10C L2 2009-09-14 257 6 2010 10C L3 2009-12-11 345 7 2012 10C Early 2011-08-23 235 8 2012 10C L2 2011-09-22 265 9 2012 10C L3 2011-12-03 337 10 2012 10C LSample 2012-03-26 86 11 2013 10C Early 2012-09-07 251 12 2013 10C L2 2012-09-30 274 13 2013 10C L3 2012-12-17 352 14 2014 10C Early 2013-09-02 245 15 2014 10C L2 2013-09-16 259 16 2014 10C L3 2013-12-16 350 17 2014 10C LMid 2014-01-07 7 18 2015 10C Early 2014-09-08 251 19 2015 10C L2 2014-09-30 273 20 2015 10C L3 2014-12-01 335

我很难将Julian开始日期转换/重新分配到7月1日而不是1月1日。下图中的点图显示了年初(2月至3月)的最终抽样。 Example plot of data chron包可以选择重新排序origin,但我无法使其与我的数据一起正常工作。

library(chron) library(dplyr) data.date <- data %>% mutate(July.Julian = chron(date,format = c(dates = "ymd"), options(chron.origin = c(month=7, day=1, year=2008)))) Error in chron(c("2008-09-15", "2008-09-29", "2008-12-15", "2009-08-31", : misspecified chron format(s) length

July.Julian = chron(data$date, format = c(dates = "ymd"), options(chron.origin = c(month=7, day=1, year=2008))) Error in chron(c("2008-09-15", "2008-09-29", "2008-12-15", "2009-08-31", : misspecified chron format(s) length

我试图将朱利安日期作为1而不是182开始。

欢迎提出意见或建议。

1 个答案:

答案 0 :(得分:2)

假设July.Julian应该是7月1日后的Julian天:

transform(date.data, July.Julian = as.chron(sprintf("%d-07-01", year)) + Julian)

date.data %>% mutate(July.Julian = as.chron(sprintf("%d-07-01", year)) + Julian)

请注意,这里实际上并不需要chron。只需将as.chron替换为as.Date,其中任何一项都可以。