2017-10-20 105 views
0

我有一個數據幀,其中包含以下兩個變量: amount:num 1213.5 34.5 ... txn_date:POSIXct,format「2017-05-01 12:13:30 「...日期類型爲時間序列的變換數據幀POSIXct

我想使用ts()在時間序列中對其進行轉換。

我開始使用此代碼:

ž< - 動物園(數據$量,order.by = as.Date(as.character(數據$ txn_date),格式=「%Y /%米/% d%H:%M:%S「))

但問題是在ZI中鬆了日期。實際上,所有的日期都報告爲NA。

我該如何解決? 對於我的分析很重要的日期格式爲:%Y /%m /%d%H:%M:%S 例如2017-05-01 12:13:30。我不想刪除變量txn_date中的時間組件。

Yhan你的幫助, 安德烈

回答

0

我覺得你prolem來自你操縱你的數據幀的方式,可以發佈關於它的詳細信息,請?

我想我有一個修復程序給你。 數據幀我用:

> Z<-zoo(df1$data,order.by=(as.POSIXct(df1$date$`%Y-%m-%d`))) 
> Z 
      value 
1974-01-01 1.9150 
1974-01-02 3.1025 
1974-01-03 6.7400 
1974-01-04 8.5025 
1974-01-05 11.0025 
1974-01-06 9.8025 
1974-01-07 9.0775 
1974-01-08 7.0900 
1974-01-09 6.8525 
1974-01-10 7.4900 

這裏最重要的是,我使用的df1$date$%Y-%m-%d而不只是 df1$date

> df1 
$data 
    value 
1 1.9150 
2 3.1025 
3 6.7400 
4 8.5025 
5 11.0025 
6 9.8025 
7 9.0775 
8 7.0900 
9 6.8525 
10 7.4900 

$date 
    %Y-%m-%d 
1 1974-01-01 
2 1974-01-02 
3 1974-01-03 
4 1974-01-04 
5 1974-01-05 
6 1974-01-06 
7 1974-01-07 
8 1974-01-08 
9 1974-01-09 
10 1974-01-10 
> class(df1$data$value) 
[1] "numeric" 
> class(df1$date$`%Y-%m-%d`) 
[1] "POSIXct" "POSIXt" 

然後我就可以通過調用動物園一樣,意甲創建時間

事實上,如果我嘗試你的方式,我也會得到NA的值:

> Z<-zoo(df1$data,order.by=as.POSIXct(as.Date(as.character(df1$date),format("%Y-%m-%d")))) 
> Z 
    value 
<NA> 1.915 

要獲取數據$ txn_date的名稱,可以使用以下命令:names(data$txn_date)並嘗試使用您的數據框和名稱的解決方案。

> names(df1$date) 
[1] "%Y-%m-%d" 
+0

嗨,Aurelien,非常感謝您的解決方案。 – user1010441

+0

我生病了,但是當我回來工作時,我會嘗試你的優雅的解決方案。 – user1010441

+0

不幸的是,我不能給你更多的細節,因爲數據是保密的。但你的解決方案聽起來不錯如果它有效,我會盡快通知你。 – user1010441

相關問題