The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.
Simple functions for accessing data from Wharton Research Data Services (WRDS).
Install from CRAN:
install.packages("wrds")Or install the development version from GitHub:
# install.packages("pak")
pak::pak("statzhero/wrds")Before first use, store your WRDS credentials securely:
library(wrds)
wrds_set_credentials()Credentials are stored in your system’s keyring (Keychain on macOS, Credential Manager on Windows).
library(wrds)
wrds <- wrds_connect()
# Discover available data
list_libraries(wrds)
list_tables(wrds, "comp")
# Inspect table structure
describe_table(wrds, "comp", "funda", max_cols = 5)
#> comp.funda
#> Rows: 929,001
#> Columns: 948
#> $ gvkey <chr> "001000", "001000", "001000", "001000", "001000", ...
#> $ datadate <date> 1961-12-31, 1962-12-31, 1963-12-31, 1964-12-31, ...
#> $ fyear <int> 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, ...
#> $ indfmt <chr> "INDL", "INDL", "INDL", "INDL", "INDL", "INDL", "INDL", ...
#> $ consol <chr> "C", "C", "C", "C", "C", "C", "C", "C", "C", "C", "C", ...
#> # ... with 943 more columnsTo browse interactively in the Positron or RStudio Connections pane:
library(connections)
connection_view(wrds)Pre-built functions for common datasets:
# Compustat annual fundamentals (North America)
funda <- get_compustat(wrds,
start_date = "2024-01-01",
end_date = "2025-12-31"
)
# Compustat quarterly (Global)
g_fundq <- get_compustat(wrds,
frequency = "quarterly",
region = "global",
start_date = "2025-01-01"
)
# Company header data (SIC, NAICS, state, etc.)
company <- get_company(wrds)
# Linking tables
ccm <- link_ccm(wrds)
ibes_link <- link_ibes_crsp(wrds)
# Preview before downloading
preview <- get_compustat(wrds, n = 100)
# Historical SIC codes are included by default
get_compustat(wrds, n = 100) |> dplyr::count(sich)
#> # A tibble: 4 × 2
#> sich n
#> <int> <int>
#> 1 4841 1
#> 2 5080 24
#> 3 5712 3
#> 4 NA 72
# Fill missing historical SIC codes with SIC from comp.company
get_compustat(wrds, fill_sic = TRUE, n = 100) |> dplyr::count(sic)
#> # A tibble: 8 × 2
#> sic n
#> <chr> <int>
#> 1 3089 17
#> 2 3825 13
#> 3 3949 3
#> 4 4841 2
#> 5 4911 1
#> 6 5080 46
#> 7 5712 10
#> 8 5812 8
wrds_disconnect(wrds)Access any table and build queries with dplyr:
# Filter CRSP monthly returns for specific stocks
big_tech <- c(14593, 90319, 13407) # Apple, Alphabet, Meta
get_table(wrds, "crsp", "msf") |>
filter(permno %in% big_tech, date >= "2020-01-01") |>
select(permno, date, ret, prc, shrout) |>
collect()
# Lazy queries for large datasets
get_compustat(wrds, lazy = TRUE) |>
filter(fyear >= 2000) |>
select(gvkey, datadate, at, sale) |>
collect()get_compustat() applies standard research filters by
default. You can customize these for specialized analyses:
# Financial services firms (banks, insurance, etc.)
# Default indfmt = "INDL" excludes these
get_compustat(wrds, indfmt = "FS", n = 100)
# Include non-consolidated statements
# Default consol = "C" returns only consolidated
get_compustat(wrds, consol = "B", n = 100)
# Add columns beyond the defaults
get_compustat(wrds, add_columns = c("emp"), n = 100)
# Specify your own column list (replaces defaults)
get_compustat(wrds, columns = c("gvkey", "datadate", "at", "lt", "seq"), n = 100)Default filters by region:
| Filter | North America | Global (without US) |
|---|---|---|
datafmt |
"STD" |
"HIST_STD" |
popsrc |
"D" (domestic) |
"I" (international) |
indfmt |
"INDL" |
"INDL" |
consol |
"C" |
"C" |
To inspect the default columns and table names for any frequency/region combination:
wrds:::compustat_config("annual", "na")
wrds:::compustat_config("quarterly", "global")| Function | Description |
|---|---|
wrds_connect() |
Connect to WRDS using keyring credentials |
wrds_disconnect() |
Close connection |
wrds_set_credentials() |
Store credentials in system keyring |
list_libraries() |
List available schemas |
list_tables() |
List tables in a schema |
describe_table() |
Glimpse table structure and sample values |
get_table() |
Generic access to any WRDS table |
get_compustat() |
Download Compustat fundamentals |
get_company() |
Download Compustat company header data |
link_ccm() |
Get CRSP-Compustat linking table |
link_ibes_crsp() |
Get IBES-CRSP linking table |
These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.