我想将数据帧的列转换为格里高利日期。 例如,以下数据框:
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
或添加包含此信息的新列。
提前致谢
答案 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