2012-02-21 3 views
0

xtsに日付と時間の両方の範囲を含むサブセットを照会することはできません。例:Rxts:日付と時刻の両方を照会します

> head(myxts['2012-01-06 9:30:00/2012-01-06 10:00:00'], 1) 
        Symbol  
2012-01-03 09:30:00 "AA" 

> tail(myxts['2012-01-06 9:30:00/2012-01-06 10:00:00'], 1) 
       Symbol  
2012-01-06 10:00:00 "AA" 

ここで最初の行は2012-01-03です。なぜ2012年1月6日?

EDIT

私も時間によって照会、その後、新しい変数に最初の単一の日付を抽出しようとしました。この場合、日付の時系列データは正しく抽出されますが、時系列データは機能しません。

e = myxts['2012-01-06'] 
e['10:00:00::10:20:00'] # returns all rows in '2012-01-06' 

EDIT 2

'09入るこのような状況が見つかり:45:

> tail(myxts['2011-12-19 9:40:00::2011-12-19 9:45:00']) 
        Symbol DaySec 
2011-12-19 16:00:00 "WPI" "57600" 

> tail(myxts['2011-12-19 9:40:00::2011-12-19 09:45:00']) 
        Symbol DaySec 
2011-12-19 09:45:00 "WPI" "35100" 

答えて

1

'2012-01-06 9:30:00'は、ISO-8601に準拠した文字列ではありません。各コンポーネントは2桁(指定されている場合)でなければならないので、'2012-01-06 09:30:00'が必要です。

+0

okですが、 "dimnames(x)< - dn: の長さのエラーが発生してはいけません。インデックスがシリーズと一致しない場合、dimnames '[2] –

+0

うん、これが問題だった。 *日付と時刻の両方は、先行する '0'を含め、完全に指定する必要があります。あなたは私の質問のコードの最初の行に間違った時間を使用していたことがわかります。これは扱いにくいですか? –

+0

@RobertKubrick:xts/zooインデックスは淡色文字とは関係ありません。彼らは別の属性です。あなたがドキュメンテーションに従うのは難しいことではありません( '? '[。xts''を見てください。これは確かに見つけにくいです)。 –

0

作品: '9時45分○○秒ではなく' 00' の問題を解決するようです私のために:

R> now <- Sys.time() 
R> foo <- xts(1:100, now + (1:100)*30*60) # hundred half-hour intervals 
R> head(foo) 
          [,1] 
2012-02-21 11:48:32.37683 1 
2012-02-21 12:18:32.37683 2 
2012-02-21 12:48:32.37683 3 
2012-02-21 13:18:32.37683 4 
2012-02-21 13:48:32.37683 5 
2012-02-21 14:18:32.37683 6 
R> tail(foo) 
          [,1] 
2012-02-23 10:48:32.37683 95 
2012-02-23 11:18:32.37683 96 
2012-02-23 11:48:32.37683 97 
2012-02-23 12:18:32.37683 98 
2012-02-23 12:48:32.37683 99 
2012-02-23 13:18:32.37683 100 

私たちは2月21日の最後の1時間から最初の2月23日:

R> xtract <- foo["2012-02-21 23:00::2012-02-23 01:00"] 
R> head(xtract) 
          [,1] 
2012-02-21 23:18:32.37683 24 
2012-02-21 23:48:32.37683 25 
2012-02-22 00:18:32.37683 26 
2012-02-22 00:48:32.37683 27 
2012-02-22 01:18:32.37683 28 
2012-02-22 01:48:32.37683 29 
R> tail(xtract) 
          [,1] 
2012-02-22 22:18:32.37683 70 
2012-02-22 22:48:32.37683 71 
2012-02-22 23:18:32.37683 72 
2012-02-22 23:48:32.37683 73 
2012-02-23 00:18:32.37683 74 
2012-02-23 00:48:32.37683 75 
R> 

私はまた、日中に抽出することができます。

R> xtract <- foo["2012-02-23 02:00::2012-02-23 04:00"] 
R> xtract 
          [,1] 
2012-02-23 02:18:32.37683 78 
2012-02-23 02:48:32.37683 79 
2012-02-23 03:18:32.37683 80 
2012-02-23 03:48:32.37683 81 
R> 
+0

Dirk、私はまだ問題がありますが、私が使用しているすべてのXTSオブジェクトではありません。それはいくつかのエッジケースでなければならない、私は質問に明確に問題を示す新しいテストを追加しました。 –

関連する問題