Skip to contents

countryatlas exists to kill one recurring source of pain: country names never line up across data sources. The package makes ISO codes the universal join key and hands you a ready-to-map tibble that stitches together map geometry (bundled Natural Earth polygons, or Natural Earth sf), World Bank indicators (WDI::WDI()) and the countrycode::countrycode() crosswalk.

Details

The happy path stays one call: world_data(). Everything else is opt-in.

Database rendering (ggsql)

as_ggsql_source(), world_query().

Performance & caching

clear_country_cache().

Options

Eight options change the package's behaviour. All are unset by default.

countryatlas.cache_dir

Where the persistent cache lives, one directory per source. Defaults to tools::R_user_dir("countryatlas", "cache"); set it to "" for session-only caching. See clear_country_cache().

countryatlas.cache_max_age

How long a persistent cache entry stays usable, in seconds. Defaults to 30 days. World Bank figures are revised, so an old entry is not merely stale on disk – it is a different answer from the one the API would give now. A single non-negative number; Inf for no expiry.

countryatlas.cache_max_size

The size cap on the persistent cache, in bytes. Defaults to 50 MB, past which the least-recently-used entries are dropped. CRAN policy allows a package cache under tools::R_user_dir() only if its contents are actively managed. A single non-negative number; Inf for no cap.

countryatlas.workers

How many processes fetch indicators in parallel (only when the cache is on disk – a memory-only memo cannot survive a fork). Defaults to one fewer than the available cores, and to 2 under R CMD check, per CRAN policy. Must be a single finite number; values below one are clamped to one.

countryatlas.timeout

How long one request to a provider may take, in seconds. Defaults to 60. Every built-in source goes through the same client, so a failing fetch is bounded: at most countryatlas.retries + 1 requests of this length each, plus the waits between them.

countryatlas.retries

How many times a request is retried after a failure worth retrying (HTTP 429, a 5xx, a dropped connection), with exponential backoff and jitter, honouring Retry-After. Defaults to 3; a whole number from 0 to 10.

countryatlas.strict

Set to TRUE to make a failed download an error (class countryatlas_fetch_failed) instead of a warning and an empty result, for a pipeline that must not continue with data missing. The default, FALSE, is what CRAN asks of a package that uses the network: fail gracefully.

countryatlas.dispute_policy

Which map convention disputed territories are drawn under: "none" (default), "de_facto", "de_jure" or "neutral". Set it with dispute_policy() rather than directly, which also reports what the setting does and does not change.

countryatlas.worldview

A Natural Earth point of view the sf backend draws, as the viewing country's ISO code ("IND") or "ISO"; unset by default. Set it with dispute_policy(worldview = ), which validates it; see world_geometry().

Author

Maintainer: Youzhi Yu yuyouzhi666@icloud.com