1

CSV形式の金融ダニデータ(ソース: HISTDATA_COM_ASCII_EURUSD_T_201209.zip)を動物園シリーズに読み込もうとしています。データは、次のような形式のタイムスタンプを含む時間列によってインデックスが付けられます。ミリ秒が必要に応じて小数点で区切られていないことを除いて、20120902 170010767ほとんど同じです。%Y%m%d %H%M%OS3%OS3

タイムスタンプの後半(右)の半分を1000で除算し、再度貼り付けることで、必要な小数点を強制しようとしました。

FUN <- function(i, format)  {
    sapply(strsplit(i, " "), function(j) strptime(paste(j[1], as.numeric(j[2])/1000), format = format))
}
read.zoo(file, format = "%Y%m%d %H%M%OS3", FUN = FUN, sep = ",")

しかし、これはうまくいきませんでした-誰かがこれを適切に行うための最善の方法に光を当てることができますか?

どうもありがとう

4

1 に答える 1

1

あなたは明らかにこれを短くすることができますが、これはアイデアをうまく​​与えます:

> tm <- "20120902 170010767"    
> gsub("(^........\\s......)(.+$)", "\\1.\\2", tm)
[1] "20120902 170010.767"
> strptime( gsub("(^........\\s......)(.+$)", "\\1.\\2", tm), "%Y%m%d %H%M%OS")
[1] "2012-09-02 17:00:10.767"
于 2012-09-19T00:00:37.373 に答える