French {NMOF} | R Documentation |
Download Datasets from Kenneth French's Data Library
Description
Download datasets from Kenneth French's Data Library.
Usage
French(dest.dir,
dataset = "F-F_Research_Data_Factors_CSV.zip",
weighting = "value", frequency = "monthly",
price.series = FALSE, na.rm = FALSE,
adjust.frequency = TRUE)
Arguments
dest.dir |
character: a path to a directory |
dataset |
a character string: the CSV file name. Also
supported are the keywords ‘ |
weighting |
a character string: |
frequency |
a character string: |
price.series |
logical: convert the returns series into prices series? |
na.rm |
logical: remove missing values in the calculation of price series? |
adjust.frequency |
logical: if |
Details
The function downloads data provided by Kenneth
French at
http://mba.tuck.dartmouth.edu/pages/faculty/ken.french/data_library.html.
The download file gets a date prefix (current date in
format YYYYMMDD
) and is stored in directory
dest.dir
. Before any download is attempted,
the function checks whether a file with today's
prefix exist in dest.dir
; if yes, the file is
used.
In the original data files, missing values are
coded as -99
or similar. These
numeric values are replaced by NA
.
Calling the function without any arguments will print the names of the supported datasets (and return them insivibly).
Value
A data.frame
, with contents depending on the
particular dataset. If the download failes, the function
evaluates to NULL
.
Author(s)
Enrico Schumann
References
Gilli, M., Maringer, D. and Schumann, E. (2019) Numerical Methods and Optimization in Finance. 2nd edition. Elsevier. doi:10.1016/C2017-0-01621-X
Schumann, E. (2023) Financial Optimisation with R (NMOF Manual). http://enricoschumann.net/NMOF.htm#NMOFmanual
See Also
Examples
## list all supported files
French()
## fetch names of files from Kenneth French's website
try({
txt <- readLines(paste0("https://mba.tuck.dartmouth.edu/pages/",
"faculty/ken.french/data_library.html"))
csv <- txt[grep("ftp/.*CSV.zip", txt, ignore.case = TRUE)]
gsub(".*ftp/(.*?CSV.zip).*", "\1", csv, ignore.case = TRUE)
})
## Not run:
archive.dir <- "~/Downloads/French"
if (!dir.exists(archive.dir))
dir.create(archive.dir)
French(archive.dir, "F-F_Research_Data_Factors_CSV.zip")
## End(Not run)