[R-sig-Finance] Moving zoo objects to a db and back again
Michael Cohen
michaelbcohen at gmail.com
Sat Jun 17 03:49:49 CEST 2006
I need to store some larger zoo objects on a local database.
I realize that this is a vast subject, but I suspect that I am not
alone in needing to use a database for storing equity prices, volumes,
etc. I have not been able to find much help on designing the db
tables, and pointers to the literature are more than welcome.
The following code works, but I would like to make it more robust or elegant.
"prices" is a df with the prices of shares.
# str(prices)
# num [1:1872, 1:25] 9184 9311 9545 9538 9643 ...
# - attr(*, "dimnames")=List of 2
# ..$ : NULL
# ..$ : chr [1:25] "AdjClose" "A" "AA" "AAC" ...
# - attr(*, "index")=Class 'Date' num [1:1872] 10595 10596 10597
10598 10599 ..
# extract the date from the zoo object:
Date <- index(prices)
# extract the data from the zoo object:
y <- coredata(prices)
# combine into a df . Note: I can not write a zoo object directly to
the db - correct?
z <- as.data.frame(cbind(Date,y))
# Write to db:
dbWriteTable(con, "Prices", z)
# Read from db:
a <- dbReadTable(con, "Prices")
# extract the date
index.date <- as.Date(a[[1]])
# form the zoo object
b <- zoo(a[-1], index.date)
Many thanks,
Michael Cohen
Southern Cross University
More information about the R-SIG-Finance
mailing list