2017-06-20 151 views
0
  **Point Forecast  Lo 80 Hi 80  Lo 95 Hi 95 account 
2017.4137  180.8861 103.03618 258.7361 61.8249012 299.9474 R00172 
2017.4164  181.3260 102.63465 260.0173 60.9779946 301.6739 R00172 
2017.4192  181.7658 102.24090 261.2906 60.1429756 303.3886 R00172 
2017.4219  182.2056 101.85468 262.5565 59.3194730 305.0917 R00172 
2017.4247  182.6454 101.47575 263.8151 58.5071341 306.7837 R00172 
2017.4274  183.0852 101.10391 265.0665 57.7056233 308.4648 R00172** 

下輸出如下 我的要求是這2017.4137,2017.4164,2017.4192......... 轉換成日期格式。預測時間序列數據

esw<-rownames(df2) 
> esw 
    [1] "2017.4137" "2017.4164" "2017.4192" "2017.4219" "2017.4247" "2017.4274" 
    [7] "2017.4301" "2017.4329" "2017.4356" "2017.4384" "2017.4411" "2017.4438" 
[13] "2017.4466" "2017.4493" "2017.4521" "2017.4548" "2017.4575" "2017.4603" 
[19] "2017.4630" "2017.4658" "2017.4685" "2017.4712" "2017.4740" "2017.4767" 
[25] "2017.4795" "2017.4822" "2017.4849" "2017.4877" "2017.4904" "2017.4932" 

IAM無法得到的日期格式

df2$dates<-as.Date(esw,format="%Y/%m/%d") 

df2$dates<-as.Date(esw,format="%Y/%m/%d") 

> df2$dates 
    [1] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA 
[31] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA 
[61] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA 
[91] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA 

蔭讓所有NA的。 任何人都可以請幫助我如何進一步?

感謝

+0

你從哪裏得到你的日期? – AK88

+0

format參數用於描述輸入的格式,而不是輸出的格式。我沒有得到意見:這是一年的幾分之一嗎? – FlorianGD

回答

1

下面是如何將ESW到使用lubridate datetime格式:

esw <- c("2017.4137", "2017.4164", "2017.4192" , "2017.4219", "2017.4247", "2017.4274", 
       "2017.4301", "2017.4329", "2017.4356" , "2017.4384" , "2017.4411" , "2017.4438", 
        "2017.4466", "2017.4493", "2017.4521", "2017.4548", "2017.4575" , "2017.4603" , 
        "2017.4630", "2017.4658", "2017.4685" , "2017.4712" , "2017.4740" , "2017.4767" , 
        "2017.4795", "2017.4822", "2017.4849" , "2017.4877" , "2017.4904" , "2017.4932") 
esw <- as.numeric(esw) 
library(lubridate) 
format(date_decimal(esw), "%Y-%m-%d %H:%M:%S") 

[1] "2017-06-01 00:00:43" "2017-06-01 23:39:50" "2017-06-03 00:11:31" "2017-06-03 23:50:38" "2017-06-05 00:22:19" 
[6] "2017-06-06 00:01:26" "2017-06-06 23:40:33" "2017-06-08 00:12:14" "2017-06-08 23:51:21" "2017-06-10 00:23:02" 
[11] "2017-06-11 00:02:09" "2017-06-11 23:41:16" "2017-06-13 00:12:57" "2017-06-13 23:52:04" "2017-06-15 00:23:45" 
[16] "2017-06-16 00:02:52" "2017-06-16 23:41:59" "2017-06-18 00:13:40" "2017-06-18 23:52:47" "2017-06-20 00:24:28" 
[21] "2017-06-21 00:03:35" "2017-06-21 23:42:43" "2017-06-23 00:14:23" "2017-06-23 23:53:31" "2017-06-25 00:25:11" 
[26] "2017-06-26 00:04:19" "2017-06-26 23:43:26" "2017-06-28 00:15:07" "2017-06-28 23:54:14" "2017-06-30 00:25:55" 

如果你只想要日期,沒有時間,要小心,因爲今年分數可導致重複日期。在這種情況下,2017年6月1日

format(date_decimal(esw), "%Y-%m-%d") 
[1] "2017-06-01" "2017-06-01" "2017-06-03" "2017-06-03" "2017-06-05" "2017-06-06" "2017-06-06" "2017-06-08" "2017-06-08" 
[10] "2017-06-10" "2017-06-11" "2017-06-11" "2017-06-13" "2017-06-13" "2017-06-15" "2017-06-16" "2017-06-16" "2017-06-18" 
[19] "2017-06-18" "2017-06-20" "2017-06-21" "2017-06-21" "2017-06-23" "2017-06-23" "2017-06-25" "2017-06-26" "2017-06-26" 
[28] "2017-06-28" "2017-06-28" "2017-06-30" 
+0

這是工作,我感謝你的建議先生 – Eswar

+0

我在上面的esw <-c(「2017.4137」,「2017.4164」)有一個小小的懷疑這兩個是不同的,但在你的輸出中,你得到了相同的日期「2017-06-01」「2017-06-01」(以同樣的方式重複所有日期),我可以知道問題所在嗎?上面使用的格式命令是否有任何錯誤。 – Eswar

+0

@eswar如果你看看答案的第一部分,我會顯示「2017.4137」,「2017.4164」對應於「2017-06-01 00:00:43」「2017-06-01 23:39:50」 。他們都是在同一天,但在不同的時間。如果你不看時間,它會在同一天。 –

相關問題