Использовать заголовок как формат даты (часы) в R

У меня есть кадр данных за месяц (1 АПРЕЛЯ - 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 имя строки — год, тогда имя столбца — месяц. В этом случае я хочу, чтобы мое имя строки было днем ​​с 1 по 30 апреля, тогда мое имя столбца 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

Я ценю любой ответ, напишите в моем посте. Большое тебе спасибо. Извините за мой английский


person Amri Muhaimin    schedule 19.09.2017    source источник


Ответы (2)


Похоже, что для функции plotNA.distribution требуется один вектор или объект класса ts, что и представляет собой tsAirGap.

Здесь есть информация о том, как создать объект ts: https://stat.ethz.ch/R-manual/R-devel/library/stats/html/ts.html

У вас также есть возможность изменить форму вашего data.frame из его текущего «широкого» формата в «длинный» формат, а затем отобразить значения.

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 объекты.

person Jul    schedule 19.09.2017

Не очень понятно из вашего вопроса. Если я немного понял, вы хотели бы установить имена для столбцов в вашем фрейме данных в часовом формате.

Вы можете использовать names, чтобы установить имена для вашего фрейма данных df следующим образом (например, если у вас есть 5 столбцов):

names(df) <- c("13.30", "14.30", "16.00", "17.00", "18.00")
person Santosh M.    schedule 19.09.2017