我正在尝试将日期转换为朱利安日期。我有这个数据框
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
有人可以帮助我吗?
非常感谢
答案 0 :(得分: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