R string vector seq

时间:2017-02-02 11:00:51

标签: r plot axis seq as.date

这是我的目标输出,z将提供我的x轴图。

z<-c("2014-01", "", "", "2014-04", "", "", "2014-07", "", "","2014-10", "", "", "2015-01")

该剧情将每月制作一次,我的目标是自动创建轴。 2015-01是我最后一个可用的数据点,该图将显示回到2014-01的1年。下次更新将使我想将情节设置为2015-02至2014-02。

可以看出,轴的标记以3个月的步骤返回,使得蜱之间为空。

我可以通过提供最新的2015-02标签来自动化这个过程,其余的会被R以某种方式扣除吗?

我想也许可以将我的起点2015-01转换为日期格式并将其排序回2014-01。然后再将它作为一个角色并将其用于轴...

myz <- as.Date(c("2014-01", "2015-01"), "%Y - %m")

但是myz是空的。而且,空蜱的问题远非如此。

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

这可能会更有效地完成,但这是一个解决方案:

version <- "201701"
endDate = as.Date(paste0(version,"01"), "%Y%m%d")

startDateString = paste0(as.integer(substr(version, 1, 4)) - 3, substr(version, 5, 6))
startDate = as.Date(paste0(startDateString,"01"), "%Y%m%d")

rngx <- format(seq(startDate, endDate, "3 months"), "%Y-%m")


output = c()
for(i in 1:(length(rngx)-1)) {
  output = c(output, rngx[i], "", "")
}
output = c(output, rngx[length(rngx)])

version <- "201701"标记开始日期(并用于脚本中的其他部分,例如setwd()