{
  "_id": "6ac065e691601a2ad2996a32",
  "Package": "countryatlas",
  "Type": "Package",
  "Title": "Join World Bank Data, Country Codes and Maps on the ISO Spine",
  "Version": "4.0.0",
  "Authors@R": "person(given = \"Youzhi\",\nfamily = \"Yu\",\nrole = c(\"aut\", \"cre\"),\nemail = \"yuyouzhi666@icloud.com\")",
  "Description": "A complete toolkit for getting country data onto honest\nmaps. Country names rarely line up across data sources (\"US\",\n\"U.S.\", \"United States\", \"United States of America\" are one\ncountry, but a naive join treats them as four), so\n'countryatlas' makes ISO codes the universal join key, and\nmatches names in many languages. It joins indicators from the\nWorld Bank, Our World in Data, the European Union's statistical\noffice and any statistical data and metadata exchange service\nto bundled Natural Earth borders and the 'countrycode' Rosetta\nstone, recording each value's source, unit and release, and can\npin a World Bank release so a result reproduces; treats\ncountry-year panels as first class, with dated income groups,\nregions and group memberships, lags keyed on the year and\naggregates that report their coverage; adds analysis helpers\n(per-capita, inequality, convergence, distribution dynamics,\nrates, and spatial statistics with multiple-testing control);\nand draws a full vocabulary of equal-area maps (classed and\ncontinuous choropleths, proportional-symbol, spike, bivariate,\nternary, value-by-alpha, cartogram, tile-grid, flow,\nsmall-multiple, animated, globe and interactive), and can hand\nits curated tables to 'ggsql' for database-side rendering.\nHonesty is treated as a feature rather than a slogan: maps\nstate their coverage and source, draw small states rather than\ndropping them and describe themselves in alt text,\nclassification methods can be compared side by side, and the\ndistortion each projection introduces can be measured and\ndrawn. Heavy spatial dependencies stay optional, and a bundled\noffline snapshot lets every example, test and vignette run\nwithout the network.",
  "License": "GPL (>= 3)",
  "URL": "https://pursuitofdatascience.github.io/countryatlas/,\nhttps://github.com/PursuitOfDataScience/countryatlas",
  "BugReports": "https://github.com/PursuitOfDataScience/countryatlas/issues",
  "Encoding": "UTF-8",
  "Language": "en-GB",
  "LazyData": "true",
  "VignetteBuilder": "knitr",
  "Config/testthat/edition": "3",
  "Roxygen": "list(markdown = TRUE)",
  "RoxygenNote": "7.3.2",
  "Config/pak/sysreqs": "libicu-dev libssl-dev",
  "Repository": "https://pursuitofdatascience.r-universe.dev",
  "Date/Publication": "2026-10-03 01:10:26 UTC",
  "RemoteUrl": "https://github.com/pursuitofdatascience/countryatlas",
  "RemoteRef": "HEAD",
  "RemoteSha": "ae13a0232c06719083710ad018c6da36458848dd",
  "NeedsCompilation": "no",
  "Packaged": {
    "Date": "2026-10-03 02:12:42 UTC",
    "User": "root"
  },
  "Author": "Youzhi Yu [aut, cre]",
  "Maintainer": "Youzhi Yu <yuyouzhi666@icloud.com>",
  "_user": "pursuitofdatascience",
  "_type": "src",
  "_file": "countryatlas_4.0.0.tar.gz",
  "_fileid": "https://r2.ropensci.org/39a06f0e426c8fe4fcca8791cfa269a68ecb512d397e8830d0ff4d389c0d2e25",
  "_filesize": 6954277,
  "_sha256": "39a06f0e426c8fe4fcca8791cfa269a68ecb512d397e8830d0ff4d389c0d2e25",
  "_expires": "2027-01-11T02:18:12.000Z",
  "_created": "2026-10-03T02:12:42.000Z",
  "_published": "2026-10-03T02:18:14.734Z",
  "_jobs": [
    {
      "job": 111105208493,
      "time": 200,
      "config": "linux-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "11261422356"
    },
    {
      "job": 111105208403,
      "time": 272,
      "config": "linux-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "11262250407"
    },
    {
      "job": 111105208434,
      "time": 177,
      "config": "macos-oldrel-arm64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "11261906008"
    },
    {
      "job": 111105208414,
      "time": 255,
      "config": "macos-release-arm64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "11261627133"
    },
    {
      "job": 111104269193,
      "time": 304,
      "config": "source",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "11261389065"
    },
    {
      "job": 111105208401,
      "time": 150,
      "config": "wasm-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "11262405003"
    },
    {
      "job": 111105208391,
      "time": 201,
      "config": "windows-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "11262340224"
    },
    {
      "job": 111105208428,
      "time": 219,
      "config": "windows-oldrel-x86_64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "11262410136"
    },
    {
      "job": 111105208448,
      "time": 225,
      "config": "windows-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "11261955825"
    }
  ],
  "_host": "GitHub-Actions",
  "_buildurl": "https://github.com/r-universe/pursuitofdatascience/actions/runs/37088706832",
  "_status": "success",
  "_upstream": "https://github.com/pursuitofdatascience/countryatlas",
  "_commit": {
    "id": "ae13a0232c06719083710ad018c6da36458848dd",
    "author": "Youzhi Yu <yuyouzhi666@icloud.com>",
    "committer": "Youzhi Yu <yuyouzhi666@icloud.com>",
    "message": "chore: version 4.0.0, and features.md retired\n\nDESCRIPTION goes to 4.0.0 and NEWS.md's development heading becomes the\n4.0.0 section, so the website, which takes its version from DESCRIPTION,\nstops showing 3.0.0. cran-comments.md's check results are now the 4.0.0\ntarball's: R CMD check --as-cran --run-donttest gives 0 errors, and the URL\nand DESCRIPTION spelling checks are clean.\n\nfeatures.md, the 3.0.0 design record, is removed with its .Rbuildignore\nentry; everything it planned shipped in 3.0.0.\n",
    "time": 1790989826
  },
  "_maintainer": {
    "name": "Youzhi Yu",
    "email": "yuyouzhi666@icloud.com",
    "login": "pursuitofdatascience",
    "description": "CUDA out of memory",
    "uuid": 54338793
  },
  "_distro": "resolute",
  "_registered": true,
  "_dependencies": [
    {
      "package": "R",
      "version": ">= 4.1.0",
      "role": "Depends"
    },
    {
      "package": "cachem",
      "role": "Imports"
    },
    {
      "package": "cli",
      "role": "Imports"
    },
    {
      "package": "countrycode",
      "role": "Imports"
    },
    {
      "package": "curl",
      "role": "Imports"
    },
    {
      "package": "dplyr",
      "role": "Imports"
    },
    {
      "package": "ggplot2",
      "role": "Imports"
    },
    {
      "package": "grDevices",
      "role": "Imports"
    },
    {
      "package": "jsonlite",
      "role": "Imports"
    },
    {
      "package": "lifecycle",
      "role": "Imports"
    },
    {
      "package": "memoise",
      "role": "Imports"
    },
    {
      "package": "parallel",
      "role": "Imports"
    },
    {
      "package": "rlang",
      "role": "Imports"
    },
    {
      "package": "stats",
      "role": "Imports"
    },
    {
      "package": "tibble",
      "role": "Imports"
    },
    {
      "package": "tidyr",
      "role": "Imports"
    },
    {
      "package": "tools",
      "role": "Imports"
    },
    {
      "package": "utils",
      "role": "Imports"
    },
    {
      "package": "WDI",
      "role": "Imports"
    },
    {
      "package": "biscale",
      "role": "Suggests"
    },
    {
      "package": "cartogram",
      "role": "Suggests"
    },
    {
      "package": "cartogramR",
      "role": "Suggests"
    },
    {
      "package": "classInt",
      "role": "Suggests"
    },
    {
      "package": "colorspace",
      "role": "Suggests"
    },
    {
      "package": "comtradr",
      "role": "Suggests"
    },
    {
      "package": "covr",
      "role": "Suggests"
    },
    {
      "package": "cshapes",
      "role": "Suggests"
    },
    {
      "package": "DBI",
      "role": "Suggests"
    },
    {
      "package": "duckdb",
      "role": "Suggests"
    },
    {
      "package": "eurostat",
      "role": "Suggests"
    },
    {
      "package": "gganimate",
      "role": "Suggests"
    },
    {
      "package": "ggiraph",
      "role": "Suggests"
    },
    {
      "package": "ggpattern",
      "role": "Suggests"
    },
    {
      "package": "ggrepel",
      "role": "Suggests"
    },
    {
      "package": "ggsql",
      "role": "Suggests"
    },
    {
      "package": "gifski",
      "role": "Suggests"
    },
    {
      "package": "giscoR",
      "role": "Suggests"
    },
    {
      "package": "gt",
      "role": "Suggests"
    },
    {
      "package": "knitr",
      "role": "Suggests"
    },
    {
      "package": "leaflet",
      "role": "Suggests"
    },
    {
      "package": "magick",
      "role": "Suggests"
    },
    {
      "package": "mapgl",
      "role": "Suggests"
    },
    {
      "package": "mapproj",
      "role": "Suggests"
    },
    {
      "package": "maps",
      "role": "Suggests"
    },
    {
      "package": "nanoarrow",
      "role": "Suggests"
    },
    {
      "package": "plotly",
      "role": "Suggests"
    },
    {
      "package": "regions",
      "role": "Suggests"
    },
    {
      "package": "rmapshaper",
      "role": "Suggests"
    },
    {
      "package": "rmarkdown",
      "role": "Suggests"
    },
    {
      "package": "rnaturalearth",
      "role": "Suggests"
    },
    {
      "package": "rnaturalearthdata",
      "role": "Suggests"
    },
    {
      "package": "scales",
      "role": "Suggests"
    },
    {
      "package": "sf",
      "role": "Suggests"
    },
    {
      "package": "spdep",
      "role": "Suggests"
    },
    {
      "package": "stringdist",
      "role": "Suggests"
    },
    {
      "package": "testthat",
      "version": ">= 3.2.0",
      "role": "Suggests"
    },
    {
      "package": "tmap",
      "role": "Suggests"
    },
    {
      "package": "units",
      "role": "Suggests"
    },
    {
      "package": "vdiffr",
      "role": "Suggests"
    },
    {
      "package": "withr",
      "role": "Suggests"
    }
  ],
  "_owner": "pursuitofdatascience",
  "_selfowned": true,
  "_usedby": 0,
  "_updates": [
    {
      "week": "2026-25",
      "n": 5
    },
    {
      "week": "2026-26",
      "n": 8
    },
    {
      "week": "2026-27",
      "n": 9
    },
    {
      "week": "2026-28",
      "n": 1
    },
    {
      "week": "2026-30",
      "n": 1
    },
    {
      "week": "2026-34",
      "n": 3
    },
    {
      "week": "2026-35",
      "n": 3
    },
    {
      "week": "2026-36",
      "n": 7
    },
    {
      "week": "2026-37",
      "n": 3
    },
    {
      "week": "2026-39",
      "n": 5
    },
    {
      "week": "2026-40",
      "n": 8
    }
  ],
  "_tags": [
    {
      "name": "v1.0.0",
      "date": "2026-06-19"
    },
    {
      "name": "v2.0.0",
      "date": "2026-08-23"
    },
    {
      "name": "v2.0.1",
      "date": "2026-08-25"
    },
    {
      "name": "v3.0.0",
      "date": "2026-10-01"
    },
    {
      "name": "v4.0.0",
      "date": "2026-10-03"
    }
  ],
  "_topics": [
    "countrycodes",
    "dataviz",
    "economics-data",
    "ggplot2",
    "worldbank",
    "worlddata",
    "worldmap"
  ],
  "_stars": 3,
  "_contributors": [
    {
      "user": "pursuitofdatascience",
      "count": 54,
      "uuid": 54338793
    }
  ],
  "_userbio": {
    "uuid": 54338793,
    "type": "user",
    "name": "Y. Yu",
    "followers": 35,
    "description": "CUDA out of memory"
  },
  "_downloads": {
    "count": 399,
    "source": "https://cranlogs.r-pkg.org/downloads/total/last-month/countryatlas"
  },
  "_devurl": "https://github.com/pursuitofdatascience/countryatlas",
  "_pkgdown": "https://pursuitofdatascience.github.io/countryatlas/",
  "_searchresults": 10,
  "_rbuild": "4.6.1",
  "_assets": [
    "extra/citation.cff",
    "extra/citation.html",
    "extra/citation.json",
    "extra/citation.txt",
    "extra/contents.json",
    "extra/countryatlas.html",
    "extra/manual.pdf",
    "extra/NEWS.html",
    "extra/NEWS.txt",
    "extra/readme.html",
    "extra/readme.md"
  ],
  "_homeurl": "https://github.com/pursuitofdatascience/countryatlas",
  "_realowner": "pursuitofdatascience",
  "_cranurl": true,
  "_releases": [
    {
      "version": "1.0.0",
      "date": "2026-06-24"
    },
    {
      "version": "2.0.0",
      "date": "2026-08-25"
    },
    {
      "version": "2.0.1",
      "date": "2026-08-28"
    },
    {
      "version": "3.0.0",
      "date": "2026-10-01"
    }
  ],
  "_exports": [
    "add_indicator",
    "aggregate_groups",
    "aggregate_regions",
    "animate_world",
    "as_ggsql_source",
    "attach_geometry",
    "audit_coverage",
    "audit_time_coverage",
    "beta_convergence",
    "bivariate_lisa",
    "bivariate_map",
    "bubble_map",
    "cartogram_diagnostics",
    "cartogram_map",
    "check_country_match",
    "check_dispute_coverage",
    "check_palette",
    "classify_compare",
    "classify_countries",
    "clear_country_cache",
    "clear_wdi_cache",
    "compare_sources",
    "compare_vintages",
    "complete_years",
    "convergence_club",
    "convert_country",
    "correlate_indicators",
    "country_borders",
    "country_codes",
    "country_data",
    "country_factsheet",
    "country_groups",
    "country_join",
    "country_join_all",
    "country_network",
    "country_overrides",
    "country_sources",
    "country_timeline",
    "country_weights",
    "coverage_map",
    "deflate",
    "diff_by_country",
    "dispute_policy",
    "dissolve_country",
    "distance_between",
    "dorling_map",
    "eb_morans_i",
    "facet_map",
    "fetch_comtrade",
    "fetch_eurostat",
    "fetch_indicator",
    "fetch_oecd",
    "fetch_owid",
    "fetch_sdmx",
    "flow_map",
    "flow_matrix",
    "gearys_c",
    "geom_country_labels",
    "getis_ord",
    "gini",
    "globe_map",
    "gridded_cartogram",
    "growth_rate",
    "historical_geometry",
    "in_group",
    "index_to",
    "inequality",
    "interactive_map",
    "interpolate_missing",
    "join_counts",
    "join_world",
    "lag_by_country",
    "lisa_map",
    "local_morans",
    "locate_country",
    "map_alt_text",
    "map_citation",
    "map_provenance",
    "morans_i",
    "neighbors",
    "nuts_geometry",
    "od_map",
    "per_capita",
    "project_lonlat",
    "projection_compare",
    "projection_distortion",
    "projection_info",
    "rank_countries",
    "rank_mobility",
    "rate_check",
    "rate_funnel",
    "register_country_source",
    "remove_country_source",
    "repair_country_names",
    "share_of_world",
    "sigma_convergence",
    "simplify_geometry",
    "smooth_rates",
    "source_info",
    "source_info<-",
    "spatial_lag",
    "spatial_markov",
    "spike_map",
    "spin_globe",
    "standardize_country",
    "standardize_subnational",
    "subnational_map",
    "ternary_map",
    "theil",
    "theme_world_map",
    "tile_map",
    "tile_trend_map",
    "tissot_map",
    "to_ppp",
    "transition_matrix",
    "value_by_alpha_map",
    "wdi_search",
    "wdi_vintages",
    "world_data",
    "world_geometry",
    "world_map",
    "world_query",
    "world_table",
    "zoom_map"
  ],
  "_datasets": [
    {
      "name": "common_indicators",
      "title": "Curated indicator catalogue",
      "object": "common_indicators",
      "class": [
        "tbl_df",
        "tbl",
        "data.frame"
      ],
      "fields": [
        "name",
        "code",
        "description"
      ],
      "rows": 22,
      "table": true,
      "tojson": true
    },
    {
      "name": "country_classifications",
      "title": "Dated World Bank classifications",
      "object": "country_classifications",
      "class": [
        "tbl_df",
        "tbl",
        "data.frame"
      ],
      "fields": [
        "iso3c",
        "scheme",
        "value",
        "from",
        "to",
        "source",
        "note"
      ],
      "rows": 8441,
      "table": true,
      "tojson": true
    },
    {
      "name": "country_groups_history",
      "title": "Dated country-group membership",
      "object": "country_groups_history",
      "class": [
        "tbl_df",
        "tbl",
        "data.frame"
      ],
      "fields": [
        "group",
        "iso3c",
        "country",
        "from",
        "to",
        "status"
      ],
      "rows": 288,
      "table": true,
      "tojson": true
    },
    {
      "name": "country_groups_tbl",
      "title": "Country-group membership (point-in-time)",
      "object": "country_groups_tbl",
      "class": [
        "tbl_df",
        "tbl",
        "data.frame"
      ],
      "fields": [
        "group",
        "iso3c",
        "country"
      ],
      "rows": 358,
      "table": true,
      "tojson": true
    },
    {
      "name": "country_meta",
      "title": "Static per-country metadata",
      "object": "country_meta",
      "class": [
        "tbl_df",
        "tbl",
        "data.frame"
      ],
      "fields": [
        "iso3c",
        "iso2c",
        "country",
        "continent",
        "region",
        "un_region",
        "currency",
        "tld",
        "flag",
        "capital",
        "capital_lat",
        "capital_lon",
        "centroid_lon",
        "centroid_lat",
        "area_km2",
        "landlocked",
        "income"
      ],
      "rows": 250,
      "table": true,
      "tojson": true
    },
    {
      "name": "disputed_territories",
      "title": "Disputed territories",
      "object": "disputed_territories",
      "class": [
        "tbl_df",
        "tbl",
        "data.frame"
      ],
      "fields": [
        "territory",
        "iso3c",
        "administered_by",
        "claimed_by",
        "status",
        "note"
      ],
      "rows": 22,
      "table": true,
      "tojson": true
    },
    {
      "name": "historical_codes",
      "title": "Historical / dissolved entities and their successor states",
      "object": "historical_codes",
      "class": [
        "tbl_df",
        "tbl",
        "data.frame"
      ],
      "fields": [
        "historical",
        "iso3c_hist",
        "dissolved",
        "iso3c",
        "relation",
        "country"
      ],
      "rows": 41,
      "table": true,
      "tojson": true
    },
    {
      "name": "world_snapshot",
      "title": "Offline snapshot of world data",
      "object": "world_snapshot",
      "class": [
        "list"
      ],
      "fields": [],
      "table": false,
      "tojson": true
    },
    {
      "name": "world_tiles",
      "title": "Equal-area world tile-grid layout",
      "object": "world_tiles",
      "class": [
        "tbl_df",
        "tbl",
        "data.frame"
      ],
      "fields": [
        "iso3c",
        "country",
        "row",
        "col"
      ],
      "rows": 247,
      "table": true,
      "tojson": true
    }
  ],
  "_help": [
    {
      "page": "add_indicator",
      "title": "Fetch an indicator and join it to your data",
      "topics": [
        "add_indicator"
      ]
    },
    {
      "page": "aggregate_groups",
      "title": "Aggregate by dated group membership",
      "topics": [
        "aggregate_groups"
      ]
    },
    {
      "page": "aggregate_regions",
      "title": "Roll countries up to region / income / continent",
      "topics": [
        "aggregate_regions"
      ]
    },
    {
      "page": "animate_world",
      "title": "Animate a choropleth over time",
      "topics": [
        "animate_world"
      ]
    },
    {
      "page": "as_ggsql_source",
      "title": "Export a countryatlas table as a ggsql source",
      "topics": [
        "as_ggsql_source"
      ]
    },
    {
      "page": "attach_geometry",
      "title": "Attach geometry to a country-level table",
      "topics": [
        "attach_geometry"
      ]
    },
    {
      "page": "audit_coverage",
      "title": "Coverage / missingness audit",
      "topics": [
        "audit_coverage"
      ]
    },
    {
      "page": "audit_time_coverage",
      "title": "Does the data respect when countries existed?",
      "topics": [
        "audit_time_coverage"
      ]
    },
    {
      "page": "beta_convergence",
      "title": "Beta convergence (growth regression)",
      "topics": [
        "beta_convergence"
      ]
    },
    {
      "page": "bivariate_lisa",
      "title": "Bivariate local Moran: high X among high Y",
      "topics": [
        "bivariate_lisa"
      ]
    },
    {
      "page": "bivariate_map",
      "title": "Two-variable bivariate choropleth",
      "topics": [
        "bivariate_map"
      ]
    },
    {
      "page": "bubble_map",
      "title": "Proportional-symbol (bubble) map",
      "topics": [
        "bubble_map"
      ]
    },
    {
      "page": "cartogram_diagnostics",
      "title": "Did the cartogram actually converge?",
      "topics": [
        "cartogram_diagnostics"
      ]
    },
    {
      "page": "cartogram_map",
      "title": "Area-honest cartogram",
      "topics": [
        "cartogram_map"
      ]
    },
    {
      "page": "check_country_match",
      "title": "Pre-flight country-match report",
      "topics": [
        "check_country_match"
      ]
    },
    {
      "page": "check_dispute_coverage",
      "title": "Which disputed territories does your data touch?",
      "topics": [
        "check_dispute_coverage"
      ]
    },
    {
      "page": "check_palette",
      "title": "Check a map's colours under colour-vision deficiency",
      "topics": [
        "check_palette"
      ]
    },
    {
      "page": "classify_compare",
      "title": "The same map under several classifications",
      "topics": [
        "classify_compare"
      ]
    },
    {
      "page": "classify_countries",
      "title": "Classify countries as they were classified at the time",
      "topics": [
        "classify_countries"
      ]
    },
    {
      "page": "clear_country_cache",
      "title": "Clear the cached downloads",
      "topics": [
        "clear_country_cache"
      ]
    },
    {
      "page": "common_indicators",
      "title": "Curated indicator catalogue",
      "topics": [
        "common_indicators"
      ]
    },
    {
      "page": "compare_sources",
      "title": "Do two sources agree?",
      "topics": [
        "compare_sources"
      ]
    },
    {
      "page": "compare_vintages",
      "title": "How much did a World Bank series change between releases?",
      "topics": [
        "compare_vintages"
      ]
    },
    {
      "page": "complete_years",
      "title": "Fill or interpolate panel gaps",
      "topics": [
        "complete_years"
      ]
    },
    {
      "page": "convergence_club",
      "title": "Convergence clubs",
      "topics": [
        "convergence_club"
      ]
    },
    {
      "page": "convert_country",
      "title": "Friendly country-code conversion",
      "topics": [
        "convert_country"
      ]
    },
    {
      "page": "correlate_indicators",
      "title": "Pairwise correlation of indicators on the spine",
      "topics": [
        "correlate_indicators"
      ]
    },
    {
      "page": "country_borders",
      "title": "Country adjacency (shared land borders)",
      "topics": [
        "country_borders"
      ]
    },
    {
      "page": "country_classifications",
      "title": "Dated World Bank classifications",
      "topics": [
        "country_classifications"
      ]
    },
    {
      "page": "country_codes",
      "title": "The countrycode codelist as a tidy tibble",
      "topics": [
        "country_codes"
      ]
    },
    {
      "page": "country_data",
      "title": "Lightweight one-row-per-country table",
      "topics": [
        "country_data"
      ]
    },
    {
      "page": "country_factsheet",
      "title": "Everything the package knows about one country",
      "topics": [
        "country_factsheet"
      ]
    },
    {
      "page": "country_groups",
      "title": "Country-group membership",
      "topics": [
        "country_groups"
      ]
    },
    {
      "page": "country_groups_history",
      "title": "Dated country-group membership",
      "topics": [
        "country_groups_history"
      ]
    },
    {
      "page": "country_groups_tbl",
      "title": "Country-group membership (point-in-time)",
      "topics": [
        "country_groups_tbl"
      ]
    },
    {
      "page": "country_join",
      "title": "Reconcile and join two messy country tables",
      "topics": [
        "country_join"
      ]
    },
    {
      "page": "country_join_all",
      "title": "Join many messy country tables on the ISO spine",
      "topics": [
        "country_join_all"
      ]
    },
    {
      "page": "country_meta",
      "title": "Static per-country metadata",
      "topics": [
        "country_meta"
      ]
    },
    {
      "page": "country_network",
      "title": "Describe an origin-destination table as a network",
      "topics": [
        "country_network"
      ]
    },
    {
      "page": "country_overrides",
      "title": "Curated country-name overrides (replaces the silent drop-list)",
      "topics": [
        "country_overrides"
      ]
    },
    {
      "page": "country_sources",
      "title": "The registered data sources",
      "topics": [
        "country_sources"
      ]
    },
    {
      "page": "country_timeline",
      "title": "A country's existence span, predecessors and successors",
      "topics": [
        "country_timeline"
      ]
    },
    {
      "page": "country_weights",
      "title": "Spatial weights on the country spine",
      "topics": [
        "country_weights"
      ]
    },
    {
      "page": "coverage_map",
      "title": "Map the data availability itself",
      "topics": [
        "coverage_map"
      ]
    },
    {
      "page": "deflate",
      "title": "Convert a money series to constant prices",
      "topics": [
        "deflate"
      ]
    },
    {
      "page": "dispute_policy",
      "title": "State which map convention you are using",
      "topics": [
        "dispute_policy"
      ]
    },
    {
      "page": "disputed_territories",
      "title": "Disputed territories",
      "topics": [
        "disputed_territories"
      ]
    },
    {
      "page": "dissolve_country",
      "title": "Resolve dissolved entities to their successor states",
      "topics": [
        "dissolve_country"
      ]
    },
    {
      "page": "distance_between",
      "title": "Great-circle distance between two countries",
      "topics": [
        "distance_between"
      ]
    },
    {
      "page": "dorling_map",
      "title": "Dorling cartogram (first-class verb)",
      "topics": [
        "dorling_map"
      ]
    },
    {
      "page": "eb_morans_i",
      "title": "Moran's I for rates, not fooled by small denominators",
      "topics": [
        "eb_morans_i"
      ]
    },
    {
      "page": "facet_map",
      "title": "Small-multiple choropleths",
      "topics": [
        "facet_map"
      ]
    },
    {
      "page": "fetch_indicator",
      "title": "Fetch an indicator from any registered source",
      "topics": [
        "fetch_indicator"
      ]
    },
    {
      "page": "fetch_sdmx",
      "title": "Read any SDMX statistics service",
      "topics": [
        "fetch_sdmx"
      ]
    },
    {
      "page": "flow_map",
      "title": "Great-circle origin-destination flow map",
      "topics": [
        "flow_map"
      ]
    },
    {
      "page": "flow_matrix",
      "title": "An origin-destination table as a matrix",
      "topics": [
        "flow_matrix"
      ]
    },
    {
      "page": "gearys_c",
      "title": "Geary's C (spatial autocorrelation)",
      "topics": [
        "gearys_c"
      ]
    },
    {
      "page": "geom_country_labels",
      "title": "Centroid-anchored country labels",
      "topics": [
        "geom_country_labels"
      ]
    },
    {
      "page": "getis_ord",
      "title": "Getis-Ord G statistics (hot spots)",
      "topics": [
        "getis_ord"
      ]
    },
    {
      "page": "gini",
      "title": "Gini coefficient (population-weightable)",
      "topics": [
        "gini"
      ]
    },
    {
      "page": "globe_map",
      "title": "Orthographic globe choropleth",
      "topics": [
        "globe_map"
      ]
    },
    {
      "page": "gridded_cartogram",
      "title": "One square per N people",
      "topics": [
        "gridded_cartogram"
      ]
    },
    {
      "page": "growth_rate",
      "title": "Year-on-year (or compound) growth rate",
      "topics": [
        "growth_rate"
      ]
    },
    {
      "page": "historical_codes",
      "title": "Historical / dissolved entities and their successor states",
      "topics": [
        "historical_codes"
      ]
    },
    {
      "page": "historical_geometry",
      "title": "Historical country boundaries",
      "topics": [
        "historical_geometry"
      ]
    },
    {
      "page": "in_group",
      "title": "Is a country in a group?",
      "topics": [
        "in_group"
      ]
    },
    {
      "page": "index_to",
      "title": "Rebase a series to an index (base year = 100)",
      "topics": [
        "index_to"
      ]
    },
    {
      "page": "inequality",
      "title": "Inequality, every standard measure at once",
      "topics": [
        "inequality"
      ]
    },
    {
      "page": "interactive_map",
      "title": "Web-ready interactive choropleth",
      "topics": [
        "interactive_map"
      ]
    },
    {
      "page": "interpolate_missing",
      "title": "Fill missing values, and say that you did",
      "topics": [
        "interpolate_missing"
      ]
    },
    {
      "page": "join_counts",
      "title": "Join counts: do neighbours share a category?",
      "topics": [
        "join_counts"
      ]
    },
    {
      "page": "join_world",
      "title": "One call: your data, on a map",
      "topics": [
        "join_world"
      ]
    },
    {
      "page": "lag_by_country",
      "title": "Panel lag / difference by country",
      "topics": [
        "diff_by_country",
        "lag_by_country"
      ]
    },
    {
      "page": "lisa_map",
      "title": "Map LISA clusters",
      "topics": [
        "lisa_map"
      ]
    },
    {
      "page": "local_morans",
      "title": "Local Moran's I (LISA)",
      "topics": [
        "local_morans"
      ]
    },
    {
      "page": "locate_country",
      "title": "Tag coordinates with the country that contains them",
      "topics": [
        "locate_country"
      ]
    },
    {
      "page": "map_alt_text",
      "title": "Describe a map in words, for alt text",
      "topics": [
        "map_alt_text"
      ]
    },
    {
      "page": "map_citation",
      "title": "Cite exactly what a map used",
      "topics": [
        "map_citation"
      ]
    },
    {
      "page": "map_provenance",
      "title": "What went into this map",
      "topics": [
        "map_provenance"
      ]
    },
    {
      "page": "morans_i",
      "title": "Global Moran's I (spatial autocorrelation)",
      "topics": [
        "morans_i"
      ]
    },
    {
      "page": "neighbors",
      "title": "A country's neighbours",
      "topics": [
        "neighbors"
      ]
    },
    {
      "page": "nuts_geometry",
      "title": "NUTS geometry for Europe",
      "topics": [
        "nuts_geometry"
      ]
    },
    {
      "page": "od_map",
      "title": "Origin-destination small multiples",
      "topics": [
        "od_map"
      ]
    },
    {
      "page": "per_capita",
      "title": "Normalise an indicator by population",
      "topics": [
        "per_capita"
      ]
    },
    {
      "page": "project_lonlat",
      "title": "Project longitude and latitude onto a countryatlas map",
      "topics": [
        "project_lonlat"
      ]
    },
    {
      "page": "projection_compare",
      "title": "The same map under several projections",
      "topics": [
        "projection_compare"
      ]
    },
    {
      "page": "projection_distortion",
      "title": "Measure what a projection distorts",
      "topics": [
        "projection_distortion"
      ]
    },
    {
      "page": "projection_info",
      "title": "What a projection preserves",
      "topics": [
        "projection_info"
      ]
    },
    {
      "page": "rank_countries",
      "title": "Add rank, percentile and z-score",
      "topics": [
        "rank_countries"
      ]
    },
    {
      "page": "rank_mobility",
      "title": "How much did the ranking change?",
      "topics": [
        "rank_mobility"
      ]
    },
    {
      "page": "rate_check",
      "title": "Flag rates computed over tiny denominators",
      "topics": [
        "rate_check"
      ]
    },
    {
      "page": "rate_funnel",
      "title": "A funnel plot for rates",
      "topics": [
        "rate_funnel"
      ]
    },
    {
      "page": "register_country_source",
      "title": "Register a data source on the country spine",
      "topics": [
        "register_country_source"
      ]
    },
    {
      "page": "remove_country_source",
      "title": "Remove a registered data source",
      "topics": [
        "remove_country_source"
      ]
    },
    {
      "page": "repair_country_names",
      "title": "Auto-repair country names to their closest known match",
      "topics": [
        "repair_country_names"
      ]
    },
    {
      "page": "share_of_world",
      "title": "Each country's share of the world total",
      "topics": [
        "share_of_world"
      ]
    },
    {
      "page": "sigma_convergence",
      "title": "Sigma convergence (dispersion over time)",
      "topics": [
        "sigma_convergence"
      ]
    },
    {
      "page": "simplify_geometry",
      "title": "Simplify (thin) geometry for faster plotting",
      "topics": [
        "simplify_geometry"
      ]
    },
    {
      "page": "smooth_rates",
      "title": "Shrink unreliable rates toward the global rate",
      "topics": [
        "smooth_rates"
      ]
    },
    {
      "page": "source_adapters",
      "title": "Built-in source adapters",
      "topics": [
        "fetch_comtrade",
        "fetch_eurostat",
        "fetch_oecd",
        "fetch_owid",
        "source_adapters"
      ]
    },
    {
      "page": "source_info",
      "title": "Where the numbers came from",
      "topics": [
        "source_info",
        "source_info<-"
      ]
    },
    {
      "page": "spatial_lag",
      "title": "The neighbour average, as a column",
      "topics": [
        "spatial_lag"
      ]
    },
    {
      "page": "spatial_markov",
      "title": "Markov transitions conditioned on the neighbours",
      "topics": [
        "spatial_markov"
      ]
    },
    {
      "page": "spike_map",
      "title": "Spike map (heights at country centroids)",
      "topics": [
        "spike_map"
      ]
    },
    {
      "page": "spin_globe",
      "title": "Spin the globe",
      "topics": [
        "spin_globe"
      ]
    },
    {
      "page": "standardize_country",
      "title": "Add ISO codes and classifications to any data frame",
      "topics": [
        "standardize_country"
      ]
    },
    {
      "page": "standardize_subnational",
      "title": "Standardise subnational region names to ISO 3166-2",
      "topics": [
        "standardize_subnational"
      ]
    },
    {
      "page": "subnational_map",
      "title": "Map subnational data",
      "topics": [
        "subnational_map"
      ]
    },
    {
      "page": "ternary_map",
      "title": "Ternary choropleth for three-part compositions",
      "topics": [
        "ternary_map"
      ]
    },
    {
      "page": "theil",
      "title": "Theil index, with between/within decomposition",
      "topics": [
        "theil"
      ]
    },
    {
      "page": "theme_world_map",
      "title": "A clean theme for world maps",
      "topics": [
        "theme_world_map"
      ]
    },
    {
      "page": "tile_map",
      "title": "Equal-area world tile grid",
      "topics": [
        "tile_map"
      ]
    },
    {
      "page": "tile_trend_map",
      "title": "A small line chart for every country, on the tile grid",
      "topics": [
        "tile_trend_map"
      ]
    },
    {
      "page": "tissot_map",
      "title": "Tissot's indicatrix: what a projection does to the ground",
      "topics": [
        "tissot_map"
      ]
    },
    {
      "page": "to_ppp",
      "title": "Convert to purchasing-power-parity terms",
      "topics": [
        "to_ppp"
      ]
    },
    {
      "page": "transition_matrix",
      "title": "Markov transitions between income classes",
      "topics": [
        "transition_matrix"
      ]
    },
    {
      "page": "value_by_alpha_map",
      "title": "Value-by-alpha: equalise a rate by its denominator",
      "topics": [
        "value_by_alpha_map"
      ]
    },
    {
      "page": "wdi_search",
      "title": "Search World Bank indicators",
      "topics": [
        "wdi_search"
      ]
    },
    {
      "page": "wdi_vintages",
      "title": "The World Development Indicators releases the archive holds",
      "topics": [
        "wdi_vintages"
      ]
    },
    {
      "page": "world_data",
      "title": "Map-ready, enriched country tibble",
      "topics": [
        "world_data"
      ]
    },
    {
      "page": "world_geometry",
      "title": "Geometry without the data",
      "topics": [
        "world_geometry"
      ]
    },
    {
      "page": "world_map",
      "title": "One-line choropleth, several honest styles",
      "topics": [
        "world_map"
      ]
    },
    {
      "page": "world_query",
      "title": "Emit a ggsql spatial query for a country map",
      "topics": [
        "world_query"
      ]
    },
    {
      "page": "world_snapshot",
      "title": "Offline snapshot of world data",
      "topics": [
        "world_snapshot"
      ]
    },
    {
      "page": "world_table",
      "title": "A publication-ready table from a map-ready frame",
      "topics": [
        "world_table"
      ]
    },
    {
      "page": "world_tiles",
      "title": "Equal-area world tile-grid layout",
      "topics": [
        "world_tiles"
      ]
    },
    {
      "page": "zoom_map",
      "title": "Zoom a map without losing its projection",
      "topics": [
        "zoom_map"
      ]
    }
  ],
  "_pkglogo": "https://github.com/pursuitofdatascience/countryatlas/raw/HEAD/man/figures/logo.png",
  "_readme": "https://github.com/pursuitofdatascience/countryatlas/raw/HEAD/README.md",
  "_rundeps": [
    "cachem",
    "cli",
    "countrycode",
    "cpp11",
    "curl",
    "dplyr",
    "farver",
    "fastmap",
    "generics",
    "ggplot2",
    "glue",
    "gtable",
    "isoband",
    "jsonlite",
    "labeling",
    "lifecycle",
    "magrittr",
    "memoise",
    "pillar",
    "pkgconfig",
    "purrr",
    "R6",
    "RColorBrewer",
    "rlang",
    "S7",
    "scales",
    "stringi",
    "stringr",
    "tibble",
    "tidyr",
    "tidyselect",
    "utf8",
    "vctrs",
    "viridisLite",
    "WDI",
    "withr"
  ],
  "_vignettes": [
    {
      "source": "beyond-the-choropleth.Rmd",
      "filename": "beyond-the-choropleth.html",
      "title": "Beyond the choropleth",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Proportional-symbol (bubble) maps",
        "Spike maps",
        "Equal-area tile grids",
        "Flow maps",
        "Small multiples",
        "Labels",
        "Maps that need optional packages",
        "Value-by-alpha: the cartogram's non-distorting cousin",
        "Country adjacency and distance"
      ],
      "created": "2026-06-18 10:57:25",
      "modified": "2026-10-02 22:12:17",
      "commits": 11
    },
    {
      "source": "countryatlas-and-ggsql.Rmd",
      "filename": "countryatlas-and-ggsql.html",
      "title": "countryatlas and ggsql",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Emit a query (no dependencies)",
        "Render in the database",
        "In a Quarto / R Markdown document",
        "Why bother?"
      ],
      "created": "2026-06-23 15:26:25",
      "modified": "2026-09-27 19:16:13",
      "commits": 6
    },
    {
      "source": "countryatlas.Rmd",
      "filename": "countryatlas.html",
      "title": "countryatlas: Joining World Data to Maps on the ISO Spine",
      "author": "Youzhi Yu University of Chicago",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Abstract",
        "Introduction",
        "Core data assembly",
        "world_data()",
        "country_data() and attach_geometry()",
        "Visualising: the choropleth and beyond",
        "One-line choropleths",
        "Proportional-symbol maps",
        "Equal-area tile grids",
        "Flow maps",
        "The join engine",
        "Diagnostics: never lose a country silently",
        "Reference data and code translation",
        "Analysis helpers",
        "Inequality, correlation and convergence",
        "Performance and offline use",
        "Conclusion",
        "Session information"
      ],
      "created": "2026-06-18 15:08:01",
      "modified": "2026-10-02 22:12:17",
      "commits": 8
    },
    {
      "source": "data-you-can-trace.Rmd",
      "filename": "data-you-can-trace.html",
      "title": "Data you can trace: sources, vintages and provenance",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Every column knows its source",
        "Fetching with the record attached",
        "Pinning a release",
        "Your own source, on the same footing",
        "Two sources, one indicator",
        "What the record holds"
      ],
      "created": "2026-10-02 22:12:17",
      "modified": "2026-10-02 22:12:17",
      "commits": 1
    },
    {
      "source": "getting-started.Rmd",
      "filename": "getting-started.html",
      "title": "Getting started",
      "engine": "knitr::rmarkdown",
      "headings": [
        "A map-ready tibble in one call",
        "Your first choropleth",
        "Choosing indicators",
        "Next steps"
      ],
      "created": "2026-06-18 10:57:25",
      "modified": "2026-10-02 22:12:17",
      "commits": 7
    },
    {
      "source": "honest-maps.Rmd",
      "filename": "honest-maps.html",
      "title": "Honest maps: classification, missingness and distortion",
      "engine": "knitr::rmarkdown",
      "headings": [
        "1. The classification is doing the talking",
        "2. Grey is not a value",
        "3. Small denominators shout",
        "4. The projection is doing the talking too",
        "5. Say what the map is",
        "6. Where the data comes from, and when",
        "7. Islands are not missing at random",
        "References"
      ],
      "created": "2026-09-03 01:57:34",
      "modified": "2026-10-02 22:12:17",
      "commits": 3
    },
    {
      "source": "joining-your-own-data.Rmd",
      "filename": "joining-your-own-data.html",
      "title": "Joining your own data",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Standardise any frame",
        "One call to a map",
        "Reconcile two messy tables",
        "Reconcile many tables at once",
        "Check before you trust",
        "Historical data: dissolved countries",
        "Repair what can be repaired",
        "Custom origins",
        "Point data onto the spine"
      ],
      "created": "2026-06-18 10:57:25",
      "modified": "2026-10-02 22:12:17",
      "commits": 10
    },
    {
      "source": "sf-and-projections.Rmd",
      "filename": "sf-and-projections.html",
      "title": "Modern maps with sf & projections",
      "engine": "knitr::rmarkdown",
      "headings": [
        "An equal-area, projected choropleth",
        "The world as a globe",
        "Just the canvas",
        "Recentring and the antimeridian",
        "Region subsetting",
        "Simplifying for the web"
      ],
      "created": "2026-06-18 10:57:25",
      "modified": "2026-10-02 22:12:17",
      "commits": 10
    },
    {
      "source": "panels.Rmd",
      "filename": "panels.html",
      "title": "Panels done right",
      "engine": "knitr::rmarkdown",
      "headings": [
        "A small panel",
        "Joining two panels",
        "Membership as of each row",
        "Classifications as they were",
        "The region that moved",
        "Lags keyed on the year",
        "Aggregates that know what they are missing"
      ],
      "created": "2026-10-02 22:12:17",
      "modified": "2026-10-02 22:12:17",
      "commits": 1
    }
  ],
  "_score": 6.17172645365323,
  "_indexed": true,
  "_nocasepkg": "countryatlas",
  "_universes": [
    "pursuitofdatascience"
  ],
  "_previous": "3.0.0",
  "_binaries": [
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "4.0.0",
      "date": "2026-10-03T02:15:36.000Z",
      "distro": "resolute",
      "commit": "ae13a0232c06719083710ad018c6da36458848dd",
      "fileid": "https://r2.ropensci.org/cef5cecf2d344907ec4bb9289ba7acd9eb0c38bc5dd9463fcabad56a642b0e97",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/pursuitofdatascience/actions/runs/37088706832"
    },
    {
      "r": "4.6.1",
      "os": "linux",
      "version": "4.0.0",
      "date": "2026-10-03T02:16:12.000Z",
      "distro": "resolute",
      "commit": "ae13a0232c06719083710ad018c6da36458848dd",
      "fileid": "https://r2.ropensci.org/99324e8e84a79f6f95307a264fa4c8a356f6acfcdba90d66b3471434090fd814",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/pursuitofdatascience/actions/runs/37088706832"
    },
    {
      "r": "4.5.3",
      "os": "mac",
      "version": "4.0.0",
      "date": "2026-10-03T02:15:08.000Z",
      "commit": "ae13a0232c06719083710ad018c6da36458848dd",
      "fileid": "https://r2.ropensci.org/aaf01c73b4052fa1effb79db7988584a6abca29500759f0a052c26cd362d6e0a",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/pursuitofdatascience/actions/runs/37088706832"
    },
    {
      "r": "4.6.1",
      "os": "mac",
      "version": "4.0.0",
      "date": "2026-10-03T02:15:27.000Z",
      "commit": "ae13a0232c06719083710ad018c6da36458848dd",
      "fileid": "https://r2.ropensci.org/213574e0cd6bc09c3273c96b9b5afc39ba82cc00219e089475511774fedc8356",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/pursuitofdatascience/actions/runs/37088706832"
    },
    {
      "r": "4.6.0",
      "os": "wasm",
      "version": "4.0.0",
      "date": "2026-10-03T02:15:44.000Z",
      "commit": "ae13a0232c06719083710ad018c6da36458848dd",
      "fileid": "https://r2.ropensci.org/182b0b22e1439ffd4311fd97c6550256909872a5c32310c3652000d5e144d34c",
      "status": "success",
      "buildurl": "https://github.com/r-universe/pursuitofdatascience/actions/runs/37088706832"
    },
    {
      "r": "4.7.0",
      "os": "win",
      "version": "4.0.0",
      "date": "2026-10-03T02:14:24.000Z",
      "commit": "ae13a0232c06719083710ad018c6da36458848dd",
      "fileid": "https://r2.ropensci.org/6e1bb2a867ec7057ccc30a2e8beb2bb4e1bb7d12c62a831a8bd21e2fe01a8214",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/pursuitofdatascience/actions/runs/37088706832"
    },
    {
      "r": "4.5.3",
      "os": "win",
      "version": "4.0.0",
      "date": "2026-10-03T02:14:43.000Z",
      "commit": "ae13a0232c06719083710ad018c6da36458848dd",
      "fileid": "https://r2.ropensci.org/3e8ece60de26ec18364b5113ff67152120cb369f37c9752f39f9325df1430361",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/pursuitofdatascience/actions/runs/37088706832"
    },
    {
      "r": "4.6.1",
      "os": "win",
      "version": "4.0.0",
      "date": "2026-10-03T02:14:51.000Z",
      "commit": "ae13a0232c06719083710ad018c6da36458848dd",
      "fileid": "https://r2.ropensci.org/b6c020727c9736655c57776c4c9cea96e549827bd22d4348d214c5669cdb9171",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/pursuitofdatascience/actions/runs/37088706832"
    }
  ]
}