在R中将两列数据转换为朱利安日期的最佳方法是什么?

在R中将两列数据转换为朱利安日期的最佳方法是什么?,r,R,我是R的新手,正在尝试解决一个数据处理问题。我有一个带有两个日期列的数据框:Year和Julian date。Julian Date列仅从1-365运行。我试图将这两列合并为一列,以YYYY-MM-DD的形式放置数据,但迄今为止没有成功。As_date似乎没有以年度格式识别朱利安,并使_date返回NA值。以前有没有人见过这个问题,可以帮忙?我真的很感激 >我的约会我的约会 > my_date <- as.Date('2017-04-27') > my_date [1] "20

我是R的新手,正在尝试解决一个数据处理问题。我有一个带有两个日期列的数据框:Year和Julian date。Julian Date列仅从1-365运行。我试图将这两列合并为一列,以YYYY-MM-DD的形式放置数据,但迄今为止没有成功。As_date似乎没有以年度格式识别朱利安,并使_date返回NA值。以前有没有人见过这个问题,可以帮忙?我真的很感激

>我的约会我的约会
> my_date <- as.Date('2017-04-27')
> my_date
[1] "2017-04-27"
> 
> my_julian_date <- format(my_date,'%Y-%j' )
> my_julian_date
[1] "2017-117"
> 
> 
> my_j_d_char <- as.character(my_julian_date)
> my_j_d_char
[1] "2017-117"
> 
> my_date2 <- as.Date(my_j_d_char, format = '%Y-%j')
> my_date2
[1] "2017-04-27"
[1] "2017-04-27" > >我的朱利安约会我的朱利安约会 [1] "2017-117" > > >我的我的我的我的我的 [1] "2017-117" > >我的约会我的约会 [1] "2017-04-27"
使用
chron
软件包。Suposse:

dat <- data.frame(jul= 120:122, yyyy = rep(2005, 3))
> dat
  jul yyyy
1 120 2005
2 121 2005
3 122 2005
dat-dat
年月日
1 120 2005
2 121 2005
3 122 2005
提取yyyymmdd值

 newDates <- as.data.frame(month.day.year(dat$jul, origin. = c(month = 1, day = 1, year = dat$yyyy)))

  month day year
1     5   1 2005
2     5   2 2005
3     5   3 2005

newDates嗨Taylor,请提供一些示例数据和您尝试过的代码,以及您的预期输出。请参阅指南,特别是关于使用最小、完整和可验证示例的部分。这似乎回答了相反的问题。事实上,我采用了两种方法,因此问题得到了回答。这是错误的,第120天不是2月5日。试试>:as.Date(粘贴(dat$yyyy,dat$jul),格式=“%Y%j”)谢谢。我反转了蒙特日值。
dat$nwDt <- apply(newDates, 1, function(x) paste(x[3], x[1], x[3], sep = '-'))

> dat
 jul yyyy     nwDt
1 120 2005 2005-5-1
2 121 2005 2005-5-2
3 122 2005 2005-5-3