2017-10-20 10 views
0

私は以下の2つの変数を持つデータフレームを持っています: amount:num 1213.5 34.5 ... txn_date:POSIXct、format "2017-05-01 12:13:30 "...データ型の時系列データフレームを変換するPOSIXct

ts()を使用して時系列で変換したいです。

私はこのコードを使用して開始:

Z < - 動物園(データ$量、order.by = as.Date(as.character(データ$ txn_date)、形式= "%Y /%M /%をd%H:%M:%S "))

しかし、問題はZIで緩やかな日付です。実際、すべての日付はNAとして報告されます。

どうすれば解決できますか? 私の分析は、%Y /%m /%d%H:%M:%S (例:2017-05-01 12:13:30)という形式の日付を持つことが重要です。変数txn_dateの時間コンポーネントを削除したくありません。

Yhanあなたあなたの助け、 アンドレア

答えて

0

のために私はあなたのprolemはあなたのデータフレームを操作している方法から来ていると思いますが、それについての詳細をしてください投稿できますか?

私はあなたのための修正があると思います。

> 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" 

をその後、私はそのように動物園を呼び出すことにより、セリエ時間を作成することができます:

> 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

を使用することである私が使用 データフレーム

実際に私があなたのやり方を試してみると、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

関連する問題