如何通过获取以前的值来增加 xts 对象中的观察次数?
How to increase the number of observations in xts object by taking previous value?
我有:
dta <- xts(
c(1,2,3,4),
order.by = timeDate(c(
"2000-01-01 00:01:01",
"2000-01-01 00:01:05",
"2000-01-01 00:01:06",
"2000-01-01 00:01:07"
)
)
)
[,1]
2000-01-01 00:01:00 1
2000-01-01 00:05:00 2
2000-01-01 00:06:00 3
2000-01-01 00:07:00 4
我需要的:
[,1]
2000-01-01 00:01:00 1
2000-01-01 00:02:00 1
2000-01-01 00:03:00 1
2000-01-01 00:04:00 1
2000-01-01 00:05:00 2
2000-01-01 00:06:00 3
2000-01-01 00:07:00 4
Whosebug 上的类似问题只涉及减少 xts
对象的周期性,并没有帮助我解决这个问题。
我正在清理分钟价格数据,只有在实际交易时才会记录价格。显然,如果没有交易,这意味着价格与前一分钟保持一致。
将其与具有所需次数的零宽度序列(网格)合并:
rng <- range(time(dta))
g <- xts(, seq(rng[1], rng[2], by = 1))
na.locf(merge(dta, g))
我有:
dta <- xts(
c(1,2,3,4),
order.by = timeDate(c(
"2000-01-01 00:01:01",
"2000-01-01 00:01:05",
"2000-01-01 00:01:06",
"2000-01-01 00:01:07"
)
)
)
[,1]
2000-01-01 00:01:00 1
2000-01-01 00:05:00 2
2000-01-01 00:06:00 3
2000-01-01 00:07:00 4
我需要的:
[,1]
2000-01-01 00:01:00 1
2000-01-01 00:02:00 1
2000-01-01 00:03:00 1
2000-01-01 00:04:00 1
2000-01-01 00:05:00 2
2000-01-01 00:06:00 3
2000-01-01 00:07:00 4
Whosebug 上的类似问题只涉及减少 xts
对象的周期性,并没有帮助我解决这个问题。
我正在清理分钟价格数据,只有在实际交易时才会记录价格。显然,如果没有交易,这意味着价格与前一分钟保持一致。
将其与具有所需次数的零宽度序列(网格)合并:
rng <- range(time(dta))
g <- xts(, seq(rng[1], rng[2], by = 1))
na.locf(merge(dta, g))