次の xts オブジェクトがあります。
options("digits.secs" = 1)
ex <- structure(c(NA, -63L, NA, NA, NA, NA, NA, 0L, NA, NA, NA, NA,
NA, 1L, NA, NA, NA, NA), .Dim = c(6L, 3L), .Dimnames = list(NULL,
c("V2", "V3", "V4")), index = structure(c(1366088402.46,
1366088402.46, 1366088402.463, 1366088402.463, 1366088469.697,
1366088469.697), tzone = "", tclass = c("POSIXct", "POSIXt")),
class = c("xts", "zoo"), .indexCLASS = c("POSIXct", "POSIXt"),
tclass = c("POSIXct", "POSIXt"), .indexTZ = "", tzone = "")
ex <- make.index.unique(ex, drop = TRUE, fromLast = TRUE)
ただし、結果の xts オブジェクトには一意のインデックスがありません。また、すべての値を返すstrptime
withを使用してみました。上記のコードは、出力オプションを使用して日付を切り捨てようとしているため、直感的には意味がありません。format="...%OS1"
NA
他の人が小数のタイムスタンプをどのように処理しているかを調べましたが、ほとんどの結果は上記と一致しているようです。なぜ%OS1
私のために働いていないoptions
のですか?これを処理する正しい方法は本当にありますか? options("digits.secs")
時間インデックスを指定された増分で内部的に切り捨てたいのですが、何か新しいものに設定するたびにインデックスが変更されるべきではありません。
> options("digits.secs"=3)
> head(ex)
V2 V3 V4
2013-04-16 00:00:02.460 NA NA NA
2013-04-16 00:00:02.460 -63 0 1
2013-04-16 00:00:02.463 NA NA NA
2013-04-16 00:00:02.463 NA NA NA
2013-04-16 00:01:09.697 NA NA NA
2013-04-16 00:01:09.697 NA NA NA
> ex <- align.time(ex, n = 0.1)
> head(ex)
V2 V3 V4
2013-04-16 00:00:02.5 NA NA NA
2013-04-16 00:00:02.5 -63 0 1
2013-04-16 00:00:02.5 NA NA NA
2013-04-16 00:00:02.5 NA NA NA
2013-04-16 00:01:09.7 NA NA NA
2013-04-16 00:01:09.7 NA NA NA
> ex <- make.index.unique(ex, drop = TRUE, fromLast = TRUE)
> head(ex)
V2 V3 V4
2013-04-16 00:00:02.5 NA NA NA
2013-04-16 00:01:09.7 NA NA NA
2013-04-16 00:01:09.7 -65.5 -7500 0.25
2013-04-16 00:01:13.5 -64.0 -7500 0.25
2013-04-16 00:01:15.4 -64.0 -10000 0.20
2013-04-16 00:01:24.9 -64.0 -10000 0.20
ご覧のとおり、データの長さは約 3 分の 1 に削減されていますが、最初の数行でも 00:01:09.7 に時間インデックスが繰り返されています。