变换成CHR日期格式scale_x_date(GGPLOT2)(Transform chr into

2019-10-17 01:05发布

我试图在2000-2011每星期绘制“一天中的时间”。 这是一个后续行动,我刚才的问题, 在“本周”集结平均“%H%M”我希望能够使用scale_x_date GGPLOT2的,但我有一个很难改造我的Group.1 CHR其中为%W /%克回日期格式,以便能够使用该特定尺度。 我已经尝试了一些不同的东西,包括下面的脚本,但我不终了什么,我期待......?

out$Group.1<-as.Date(out$Group.1, "%W/%g")
out$Group.1
[1] "2006-07-18" "2010-07-18" "2010-07-18" "2011-07-18" "2004-07-18" "2010-07-18"

继GSEE的建议,这是我的数据集:

out <- aggregate(halibut_0A$stime, list(format(halibut_0A$datetime, "%W/%g")), mean)
out[order(as.numeric(paste(substr(out[, 1], 4, 5), substr(out[, 1], 1, 2)))), ]
out
    Group.1                   x
1     20/06 1970-01-01 04:26:00
2     26/10 1970-01-01 03:21:00
3     27/10 1970-01-01 08:30:45
4     27/11 1970-01-01 09:12:40
5     28/04 1970-01-01 09:40:00
6     28/10 1970-01-01 09:03:24
7     28/11 1970-01-01 06:52:40
8     29/07 1970-01-01 06:07:15
9     29/08 1970-01-01 05:36:00
10    29/10 1970-01-01 08:13:16
str(out)
'data.frame':   195 obs. of  2 variables:
 $ Group.1: chr  "20/06" "26/10" "27/10" "27/11" ...
 $ x      : POSIXct, format: "1970-01-01 04:26:00" "1970-01-01 03:21:00" ...

#write now I can use geom_bar (discrete scale), but my out$Group.1, "%W/%g" is not in the chronological order...
    ggplot(out, aes(Group.1, x)) + geom_bar() +
      scale_y_datetime(labels = date_format("%H-%M"),breaks = date_breaks("1 hour")) + xlab("Week of the year and year")
文章来源: Transform chr into date format for scale_x_date (ggplot2)