R 合并XTS数据时重复值
如果我的一个表有多个时间戳值,而另一个表只有一个,我可以在多个值中重复单个项的值吗 例如: XTS_A:R 合并XTS数据时重复值,r,merge,xts,R,Merge,Xts,如果我的一个表有多个时间戳值,而另一个表只有一个,我可以在多个值中重复单个项的值吗 例如: XTS_A: 2011/01/01 10:00:00,Bar 2011/01/01 10:00:01,Baz XTS_B: 2011/01/01 10:00:00,A 2011/01/01 10:00:00,B 2011/01/01 10:00:00,C 2011/01/01 10:00:01,B 合并结果: 2011/01/01 10:00:00,A,Bar 2011/01/01 10:00:00,
2011/01/01 10:00:00,Bar
2011/01/01 10:00:01,Baz
XTS_B:
2011/01/01 10:00:00,A
2011/01/01 10:00:00,B
2011/01/01 10:00:00,C
2011/01/01 10:00:01,B
合并结果:
2011/01/01 10:00:00,A,Bar
2011/01/01 10:00:00,B,Bar
2011/01/01 10:00:00,C,Bar
2011/01/01 10:00:01,B,Baz
可复制示例:
library(zoo)
library(xts)
XTS_A <- structure(c("Bar", "Baz"), .Dim = c(2L, 1L), index = structure(c(1293894000, 1293894001), tzone = "", tclass = c("POSIXt", "POSIXct")), class = c("xts", "zoo"), .indexCLASS = c("POSIXt", "POSIXct"), .indexTZ = "")
XTS_B <- structure(c("A", "B", "C", "B"), .Dim = c(4L, 1L), index = structure(c(1293894000, 1293894000, 1293894000, 1293894001), tzone = "", tclass = c("POSIXt", "POSIXct")), class = c("xts", "zoo"), .indexCLASS = c("POSIXt", "POSIXct"), .indexTZ = "")
图书馆(动物园)
图书馆(xts)
XTS_A之后再填写怎么样?有点难看的示例(使用循环,但像这样的顺序依赖项很难避免):
mrgzoo
软件包有一个功能,可以为填写NAs节省一些输入:na.locf(as.vector(mrg$XTS_a))
。谢谢。这是一个漂亮的函数。
mrg <- merge(XTS_A,XTS_B)
for(r in seq(nrow(mrg)) ) {
if(is.na(mrg[r,1])) {
mrg[r,1] <- mrg[r-1,1]
}
}
> mrg
XTS_A XTS_B
2011-01-01 16:00:00 "Bar" "A"
2011-01-01 16:00:00 "Bar" "B"
2011-01-01 16:00:00 "Bar" "C"
2011-01-01 16:00:01 "Baz" "B"
mrg[,1] <- na.locf(as.vector(mrg$XTS_A))