在R中使用标题作为日期(时钟)格式

时间:2017-09-19 02:23:49

标签: r ggplot2 time-series missing-data timeserieschart

我有一个月的数据框(4月1日 - 4月30日)。按小时收集的数据。我想使用plotNA.distribution创建时间序列图。问题是,如何将我的列名(标题)设置为时钟(00.00 - 23.00)?

           0   1    2   3    4   5   6    7
     

01/04/2017 24,4 26,4 28,1 29,6 30,5 31 NA 30,7

     

02/04/2017 25,8 27,3 29,2 30,1 31 32,2 32 31,4

     

03/04/2017 26,2 27,5 29 30,2 31,1 31,7 31,6 30,2

     

04/04/2017 24,8 25,8 27,8 29,3 30,8 31,6 NA 29,4

     

05/04/2017 25,6 27,2 29,3 30,3,30,2 31,5 31,7 31,7

     

06/04/2017 25,7 25,9 26,6 28 28,4 27 28,7 30

很抱歉,如果我的问题不清楚。是的,名字(df)有效。但我的df不能通过plotNA.distribution绘制。它说,我的数据应该是单变量数据。 我只想要像tsAirgap数据这样的数据。在tsAirgap数据中,rowname是年份,然后colname是月份。 在这种情况下,我希望我的rowname为4月1日 - 4月30日,然后我的colname df是00.00-23.00小时。

     Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec

1949 112 118 132 129  NA 135 148 148  NA 119 104 118

1950 115 126 141 135 125 149 170 170  NA 133  NA 140

1951 145 150 178 163 172 178 199 199 184 162 146 166

1952 171 180 193 181 183 218 230 242 209 191 172 194

1953 196 196 236 235 229 243 264 272 237 211 180 201

1954 204 188 235 227 234  NA 302 293 259 229 203 229

1955 242 233 267 269 270 315 364 347 312 274 237 278

1956 284 277  NA  NA  NA 374 413 405 355 306 271 306

1957 315 301 356 348 355  NA 465 467 404 347  NA 336

1958 340 318  NA 348 363 435 491 505 404 359 310 337

1959 360 342 406 396 420 472 548 559 463 407 362  NA

1960 417 391 419 461  NA 535 622 606 508 461 390 432

感谢我在帖子中写下的任何答案。非常感谢你。对不起我的英文

2 个答案:

答案 0 :(得分:1)

你的问题不太清楚。如果我有所了解,您希望按小时格式为数据框中的列设置名称。

您可以使用names为此数据框df设置名称(例如,如果您有5列):

names(df) <- c("13.30", "14.30", "16.00", "17.00", "18.00")

答案 1 :(得分:1)

plotNA.distribution函数似乎需要单个向量或ts类对象,这就是tsAirGap。

这里有关于如何创建ts对象的信息: https://stat.ethz.ch/R-manual/R-devel/library/stats/html/ts.html

您还可以选择从当前&#39;范围内重新塑造您的data.frame。格式,长期&#39;格式然后绘制值..

library(tidyr)
YourDataNew <- gather(YourData,key = "hour",value = "data",Jan:Dec) %>% arrange(day)
YourDataNew$data <- as.numeric(YourDataNew$data)
library(imputeTS)
plotNA.distribution(YourDataNew$data) 

..将无误地工作,但我不确定如何在结果图中设置适当的刻度标签。

在任何情况下,如果您使用时间序列数据进行大量工作,最好学习如何创建和使用ts个对象。