read.zoo, , zoo . , na.locf, NA, .
Lines <- "Date,Open,High,Low,Close,Volume,Adj.Close
2010-01-04,1116.56,1133.87,1116.56,1132.99,3991400000,1132.99
2010-01-05,1132.66,1136.63,1129.66,1136.52,2491020000,1136.52
2010-01-06,1135.71,1139.19,1133.95,1137.14,4972660000,1137.14
2010-01-11,1140.52,1145.39,1136.22,1144.98,4389590000,1144.98"
library(zoo)
z <- read.zoo(text = Lines, header = TRUE, sep = ",")
zout <- na.locf( merge(z, zoo(, seq(start(z), end(z), by = "day"))) )
:
> zout
Open High Low Close Volume Adj.Close
2010-01-04 1116.56 1133.87 1116.56 1132.99 3991400000 1132.99
2010-01-05 1132.66 1136.63 1129.66 1136.52 2491020000 1136.52
2010-01-06 1135.71 1139.19 1133.95 1137.14 4972660000 1137.14
2010-01-07 1135.71 1139.19 1133.95 1137.14 4972660000 1137.14
2010-01-08 1135.71 1139.19 1133.95 1137.14 4972660000 1137.14
2010-01-09 1135.71 1139.19 1133.95 1137.14 4972660000 1137.14
2010-01-10 1135.71 1139.19 1133.95 1137.14 4972660000 1137.14
2010-01-11 1140.52 1145.39 1136.22 1144.98 4389590000 1144.98
na.locf na.approx method = "constant" :
na.approx(z, xout = seq(start(z), end(z), by = "day"), method = "constant")
.
NA :
library(chron)
zout[is.weekend(time(zout)), ] <- NA
:
library(chron)
zout[!is.weekend(time(zout))]