Я слежу за FAQ здесь: https://joshuaulrich.github.io/xts/xts_faq.html
Я делаю этот образец. Xts
sample.xts <- xts(1:6, as.POSIXct(c("2009-09-22 07:43:30",
"2009-10-01 03:50:30", "2009-10-01 08:45:00", "2009-10-01 09:48:15",
"2009-11-11 10:30:30", "2009-11-11 11:12:45")))
# align index into regular (e.g. 3-hour) blocks
aligned.xts <- align.time(sample.xts, n=60*60*3)
# apply your function to each block
count <- period.apply(aligned.xts, endpoints(aligned.xts, "hours", 3), length)
# create an empty xts object with the desired regular index
empty.xts <- xts(, seq(start(aligned.xts), end(aligned.xts), by="3 hours"))
# merge the counts with the empty object
head(out1 <- merge(empty.xts, count))
Затем я назначаю символ:
sample.xts <- as.xts(transform(sample.xts, Symbol="AAPL"))
> sample.xts
V1 Symbol
2009-09-22 07:43:30 "1" "AAPL"
2009-10-01 03:50:30 "2" "AAPL"
2009-10-01 08:45:00 "3" "AAPL"
2009-10-01 09:48:15 "4" "AAPL"
2009-11-11 10:30:30 "5" "AAPL"
2009-11-11 11:12:45 "6" "AAPL"
Моя проблема в том, что теперь все данные представляют собой строки.
Я предполагаю, что это связано с тем, что базовые данные представляют собой матрицу, поэтому все элементы данных должны быть одного типа. Есть ли представление coredata, которое позволяет мне иметь строковые символы, а также даты posix, а также двойники OHL C? Повторяется с data(sample_matrix)
:
> data(sample_matrix)
> sample.xts <- as.xts(sample_matrix)
> head(sample.xts)
Open High Low Close
2007-01-02 50.03978 50.11778 49.95041 50.11778
2007-01-03 50.23050 50.42188 50.23050 50.39767
2007-01-04 50.42096 50.42096 50.26414 50.33236
2007-01-05 50.37347 50.37347 50.22103 50.33459
2007-01-06 50.24433 50.24433 50.11121 50.18112
2007-01-07 50.13211 50.21561 49.99185 49.99185
> sample.xts$Symbol <- "AAPL"
Warning message:
In merge.xts(..., all = all, fill = fill, suffixes = suffixes) :
NAs introduced by coercion
> head(sample.xts)
Open High Low Close Symbol
2007-01-02 50.03978 50.11778 49.95041 50.11778 NA
2007-01-03 50.23050 50.42188 50.23050 50.39767 NA
2007-01-04 50.42096 50.42096 50.26414 50.33236 NA
2007-01-05 50.37347 50.37347 50.22103 50.33459 NA
2007-01-06 50.24433 50.24433 50.11121 50.18112 NA
2007-01-07 50.13211 50.21561 49.99185 49.99185 NA