0

我正在尝试将日期转换为儒略日期。我有这个数据框

      diff   yr mo dy hr
1 3.174583 1873 12  1  1
2 2.874583 1873 12  1  3
3 2.574583 1873 12  1  5
4 2.074583 1873 12  1  7
5 1.774583 1873 12  1  9
6 1.474583 1873 12  1 11

对于每一行,我想分配自特定日期以来的天数(例如“1870-01-01”)。

我试过这样

julian(as.Date(paste(dep$yr,dep$mo,dep$dy,sep="/"),"%Y/%m/%d")) 

但这给了我自“1970-01-01”以来的日子。如果我尝试设置原点

  julian(as.Date(paste(dep$yr,dep$mo,dep$dy,sep="/"),"%Y/%m/%d"),origin = paste(1870,1,1,sep="-"))

然后我得到这个错误

Error in unclass(x) - unclass(origin) : 
  non-numeric argument to binary operator

有人能帮我吗?

非常感谢

4

1 回答 1

1

使用ISOdate此处和正确的原始日期值应该可以帮助您

julian(with(dep, ISOdate(yr,mo,dy,hr)), origin=as.Date("1870-1-1"))

# Time differences in days
# [1] 1430.042 1430.125 1430.208 1430.292 1430.375 1430.458
于 2014-07-21T16:13:49.333 回答