R将日期列转换为格里高利历

时间:2015-05-26 11:11:10

标签: r gregorian-calendar

我想将数据帧的列转换为格里高利日期。 例如,以下数据框:

       Date_R Tmax
1  1985-01-01  9.0
2  1985-02-02  9.0
3  1985-12-31 11.0
4  1986-01-04  8.5
5  1986-01-05 11.0

分为:

  Date_R Tmax
1      1  9.0
2     33  9.0
3    365 11.0
4      4  8.5
5      5 11.0

或添加包含此信息的新列。

提前致谢

2 个答案:

答案 0 :(得分:7)

转换' Date_R'列到'日期' class(如果没有)和format选项%j来获取一年中的某一天。

 df1$Date_R <- as.numeric(format(as.Date(df1$Date_R), '%j'))
 df1
 #  Date_R Tmax
 #1      1  9.0
 #2     33  9.0
 #3    365 11.0
 #4      4  8.5
 #5      5 11.0

答案 1 :(得分:7)

或者您可以使用as.POSIXlt

as.POSIXlt(df$Date_R)$yday + 1L
## [1]   1  33 365   4   5