在 R 中使用 Header 作为日期(时钟)格式
Use Header as date (clock) format in R
我有一个月的数据框(4 月 1 日 - 4 月 30 日)。按小时收集的数据。我想使用 ggplot_na_distribution
(来自 imputeTS 包)创建时间序列图。问题是,如何将我的列名 (header) 设置为时钟 (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 不能被 ggplot_na_distribution
绘制。它说,我的数据应该是单变量数据。
我只想要我的数据,例如 tsAirgap 数据。在 tsAirgap 数据中,rowname 是 year,然后 colname 是 month。
在这种情况下,我希望我的行名是 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
感谢在 post 中写下的任何答案。非常感谢你。对不起我的英语
你的问题不是很清楚。如果我有所了解,您想按小时格式设置数据框中列的名称。
您可以使用 names
设置数据框的名称 df
,例如(例如,如果您有 5 列):
names(df) <- c("13.30", "14.30", "16.00", "17.00", "18.00")
ggplot_na_distribution
函数似乎需要单个向量或 ts
class 对象,这就是 tsAirgap。
这里有关于如何创建 ts 对象的信息:
https://stat.ethz.ch/R-manual/R-devel/library/stats/html/ts.html
您还可以选择将 data.frame 从当前 'wide' 格式重塑为 'long' 格式,然后绘制值..
library(tidyr)
YourDataNew <- gather(YourData,key = "hour",value = "data",Jan:Dec) %>% arrange(day)
YourDataNew$data <- as.numeric(YourDataNew$data)
library(imputeTS)
ggplot_na_distribution(YourDataNew$data)
..可以正常工作,但我不确定如何在结果图中设置适当的刻度标签。
无论如何,如果您经常处理时间序列数据,最好学习如何创建和使用 ts
对象。
我有一个月的数据框(4 月 1 日 - 4 月 30 日)。按小时收集的数据。我想使用 ggplot_na_distribution
(来自 imputeTS 包)创建时间序列图。问题是,如何将我的列名 (header) 设置为时钟 (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 不能被 ggplot_na_distribution
绘制。它说,我的数据应该是单变量数据。
我只想要我的数据,例如 tsAirgap 数据。在 tsAirgap 数据中,rowname 是 year,然后 colname 是 month。
在这种情况下,我希望我的行名是 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
感谢在 post 中写下的任何答案。非常感谢你。对不起我的英语
你的问题不是很清楚。如果我有所了解,您想按小时格式设置数据框中列的名称。
您可以使用 names
设置数据框的名称 df
,例如(例如,如果您有 5 列):
names(df) <- c("13.30", "14.30", "16.00", "17.00", "18.00")
ggplot_na_distribution
函数似乎需要单个向量或 ts
class 对象,这就是 tsAirgap。
这里有关于如何创建 ts 对象的信息: https://stat.ethz.ch/R-manual/R-devel/library/stats/html/ts.html
您还可以选择将 data.frame 从当前 'wide' 格式重塑为 'long' 格式,然后绘制值..
library(tidyr)
YourDataNew <- gather(YourData,key = "hour",value = "data",Jan:Dec) %>% arrange(day)
YourDataNew$data <- as.numeric(YourDataNew$data)
library(imputeTS)
ggplot_na_distribution(YourDataNew$data)
..可以正常工作,但我不确定如何在结果图中设置适当的刻度标签。
无论如何,如果您经常处理时间序列数据,最好学习如何创建和使用 ts
对象。