【问题标题】:Join year and julian day as a date column in R and plot it加入年份和儒略日作为R中的日期列并绘制它
【发布时间】:2017-03-31 00:25:47
【问题描述】:

我有一些数据,其中一列表示一年中的某一天,另一列表示一年。例如,让我们考虑一下这个虚拟数据:

temp <- rep(runif(730,15,40))
doy <- rep(c(1:365),2)
year <- c(rep(2015,365), rep(2016,365))

我想加入 doy 和 year 作为日期列(2015-365 格式)。是否可以处理这种日期格式? ggplot或者基本函数plot如何处理?

【问题讨论】:

    标签: r date plot julian-date


    【解决方案1】:

    要将儒略日期转换为日期对象,请使用 %j 格式。例如:

    temp <- rep(runif(730,15,40))
    doy <- rep(c(1:365),2)
    year <- c("2015","2016")
    
    jdate<-as.Date(paste(year, doy, sep="-"),"%Y-%j") 
    df<- data.frame(jdate, temp)
    
    library(ggplot2)
    f<-ggplot(df, aes(x=jdate, y=temp))
    f+ geom_point() + scale_x_date(date_breaks="6 week", date_labels="%Y-%j")
    

    【讨论】:

    • 谢谢@Dave2e。不幸的是, as.Date(jdate, "%Y-%j") 返回日期格式为 2015-01-31。似乎.Date 不接受“%Y-%j”格式。可能是真的吗?
    • 嗯,很好。感谢那。它解决了以我需要的日期格式绘制的问题。这几乎是问题的 70%。有没有办法在列中存储朱利安日期格式(yyyy-ddd)?
    • 是的,使用格式函数将日期对象转换为字符串。喜欢这种格式(jdate, "%Y-%j")。
    猜你喜欢
    • 1970-01-01
    • 2018-04-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-30
    • 1970-01-01
    相关资源
    最近更新 更多