次の形式の一連の時間を持つデータ フレームがあります。
08:09:23.079
> class(timer3)
[1] "factor"
それらをこの形式に丸め/変換したいと思います:
08:09
最終的な目標は、それらをプロットの x 軸の値として使用することなので、ある種の時間形式 (zoo、as.Date など) にする必要があると思います。
助言がありますか?
ネクロマンサーと呼ばれる危険性があるので、この状況はかなり頻繁に発生すると思うので、私はこの質問に答えます。
xts
時系列データをフォーマットに変換する場合の方法は次のとおりです。ここで使用する関数はalign.time
> head(GBPJPY)
GBPJPY.Open GBPJPY.High GBPJPY.Low GBPJPY.Close
2009-05-01 00:14:59 146.387 146.882 146.321 146.620
2009-05-01 00:29:54 146.623 146.641 146.434 146.579
2009-05-01 00:44:59 146.579 146.908 146.570 146.810
2009-05-01 00:59:59 146.810 146.842 146.030 146.130
2009-05-01 01:14:59 146.130 146.330 146.100 146.315
2009-05-01 01:29:57 146.315 146.382 146.159 146.201
> head(align.time(GBPJPY, 15*60))
GBPJPY.Open GBPJPY.High GBPJPY.Low GBPJPY.Close
2009-05-01 00:15:00 146.387 146.882 146.321 146.620
2009-05-01 00:30:00 146.623 146.641 146.434 146.579
2009-05-01 00:45:00 146.579 146.908 146.570 146.810
2009-05-01 01:00:00 146.810 146.842 146.030 146.130
2009-05-01 01:15:00 146.130 146.330 146.100 146.315
2009-05-01 01:30:00 146.315 146.382 146.159 146.201
as.zoo(sapply(timer3,substring,1,5))
or as.xts?
たぶん、あなたのデータのより大きなサンプルを見ることは助けになるでしょう。
2 つの手順: 1) 文字に因数分解: as.character() 2) 文字を POSIXct に: strptime()