Skip to content
Prev 2686 / 15274 Next

quantmod, getSymbols, csv

Something like:
function (Symbols, env, dir = "", return.class = "xts", extension = "csv",
    ...)
{
    importDefaults("getSymbols.csv")
    this.env <- environment()
    for (var in names(list(...))) {
        assign(var, list(...)[[var]], this.env)
    }
    default.return.class <- return.class
    default.dir <- dir
    default.extension <- extension
    if (missing(verbose))
        verbose <- FALSE
    if (missing(auto.assign))
        auto.assign <- TRUE
    for (i in 1:length(Symbols)) {
        return.class <- getSymbolLookup()[[Symbols[[i]]]]$return.class
        return.class <- ifelse(is.null(return.class), default.return.class,
            return.class)
        dir <- getSymbolLookup()[[Symbols[[i]]]]$dir
        dir <- ifelse(is.null(dir), default.dir, dir)
        extension <- getSymbolLookup()[[Symbols[[i]]]]$extension
        extension <- ifelse(is.null(extension), default.extension,
            extension)
        if (verbose)
            cat("loading ", Symbols[[i]], ".....")
        if (dir == "") {
            sym.file <- paste(Symbols[[i]], extension, sep = ".")
        }
        else {
            sym.file <- file.path(dir, paste(Symbols[[i]], extension,
                sep = "."))
        }
        if (!file.exists(sym.file)) {
            cat("\nfile ", paste(Symbols[[i]], "csv", sep = "."),
                " does not exist ", "in ", dir, "....skipping\n")
            next
        }
        fr <- read.csv(sym.file, header=TRUE) #added header=TRUE
        if (verbose)
            cat("done.\n")
        fr <- xts(matrix(fr$price, dimnames=list(index(x),'price')),
as.Date(fr$date),   # added for getSymbols.John
            src = "csv", updated = Sys.time()) # added for getSymbols.John

# removed colnames call from original getSymbols.csv

        fr <- convert.time.series(fr = fr, return.class = return.class)
        Symbols[[i]] <- toupper(gsub("\\^", "", Symbols[[i]]))
        if (auto.assign)
            assign(Symbols[[i]], fr, env)
    }
    if (auto.assign)
        return(Symbols)
    return(fr)
}
<environment: namespace:quantmod>
[1] "CREFGLOBALEQ"
price
1992-05-01 25.8429
1992-05-04 25.9774
1992-05-05 25.9964
1992-05-06 26.2335
1992-05-07 26.3368

I am also planning on making a skeleton function/functionality much
like newTA does for the charts - so hand modifications will be less
important.

Jeff
On Thu, Jul 17, 2008 at 12:05 PM, Jeff Ryan <jeff.a.ryan at gmail.com> wrote: