Importing and Managing Financial Data in R
Joshua Ulrich
Quantitative Analyst & quantmod Co-Author and Maintainer
seq()
methods:seq.Date()
seq.POSIXt()
(POSIXct
and POSIXlt
)from_date <- as.Date("2017-01-01")
to_date <- as.Date("2017-01-03")
date_seq <- seq(from = from_date, to = to_date, by = "day")
start()
first index valueend()
last index valueregular_xts <- xts(seq_along(date_seq), order.by = date_seq)
start(regular_xts)
"2017-01-01"
end(regular_xts)
"2017-01-03"
seq(from = start(regular_xts), to = end(regular_xts), by = "day")
"2017-01-01" "2017-01-02" "2017-01-03"
xts
object with an index, no datazero_width_xts <- xts(, order.by = date_seq)
zero_width_xts
Data:
numeric(0)
Index:
Date[1:3], format: "2017-01-01" "2017-01-02" "2017-01-03"
str(zero_width_xts)
An 'xts' object of zero-width
NA
in the resultirregular
Price
2017-01-02 20.01
2017-01-04 20.02
2017-01-10 20.05
date_seq <- seq(from = start(irregular),
to = end(irregular),
by = "day")
regular_xts <- xts(, date_seq)
merge(irregular, regular_xts)
Price
2017-01-02 20.01
2017-01-03 NA
2017-01-04 20.02
2017-01-05 NA
2017-01-06 NA
2017-01-07 NA
2017-01-08 NA
2017-01-09 NA
2017-01-10 20.05
merged_xts <- merge(irregular, regular_xts)
na.locf(merged_xts)
Price
2017-01-02 20.01
2017-01-03 20.01
2017-01-04 20.02
2017-01-05 20.02
2017-01-06 20.02
2017-01-07 20.02
2017-01-08 20.02
2017-01-09 20.02
2017-01-10 20.05
merge(irregular, regular_xts, fill = na.locf)
Price
2017-01-02 20.01
2017-01-03 20.01
2017-01-04 20.02
2017-01-05 20.02
2017-01-06 20.02
2017-01-07 20.02
2017-01-08 20.02
2017-01-09 20.02
2017-01-10 20.05
Importing and Managing Financial Data in R