{
  "_id": "6aebdc802e87f76f20ad2c6f",
  "Package": "nestedscales",
  "Title": "Nested Scales and Multi-Dimensional Indexes for Modeling",
  "Version": "0.2.0.9000",
  "URL": "https://optimal2050.github.io/nestedscales/r/,\nhttps://github.com/optimal2050/nestedscales",
  "BugReports": "https://github.com/optimal2050/nestedscales/issues",
  "Authors@R": "person(given = \"Oleg\",\nfamily = \"Lugovoy\",\nrole = c(\"aut\", \"cre\"),\nemail = \"olugovoy@optimalsolution.dev\",\ncomment = c(ORCID = \"0000-0001-5546-9875\"))",
  "Description": "Provides multi-level discrete representations of data\ndimensions for modeling, data processing and visualization. A\nnested scale records its finest units (atoms) and their\nmembership in coarser levels (frames), including nested,\ncross-cutting and partially covered relationships. Recasts\ntabular data between levels using explicit, direction-aware\nrules for sums, means, standard deviations, copying and\nwithin-parent shares. Also supports labeling, subsetting,\ncombining scales into multi-dimensional indexes, clustering\nunits and storing data with its scale metadata. Members may\ncarry attributes (a calorific value, an emission factor) and\naliases, resolved along the hierarchy and applied row by row,\nand a scale is exchanged as a language-neutral definition file:\na 'JSON' header with inline, 'Arrow' or 'CSV' tables ('YAML'\naccepted), with a catalogue of the definitions installed\npackages ship. Forms the dimension-agnostic core of\n'timescales' <https://github.com/optimal2050/timescales>\n(calendars) and 'geoscales'\n<https://github.com/optimal2050/geoscales> (regions), designed\nfor optimization and simulation models.",
  "License": "Apache License (>= 2)",
  "Encoding": "UTF-8",
  "Roxygen": "list(markdown = TRUE)",
  "Config/testthat/edition": "3",
  "Config/Needs/website": "pkgdown, rmarkdown, ggplot2,\noptimal2050/timescales, optimal2050/geoscales,\noptimal2050/energypal",
  "VignetteBuilder": "knitr",
  "Config/roxygen2/version": "8.1.1",
  "Collate": "'scale-class.R' 'aliases.R' 'product-class.R' 'array.R'\n'attributes.R' 'backend.R' 'definition.R' 'catalog.R'\n'cluster.R' 'contiguity.R' 'convert.R' 'dataset.R' 'distance.R'\n'navigate.R' 'filter.R' 'frames.R' 'join.R' 'map.R'\n'nestedscales-package.R' 'recast.R' 'product-recast.R'\n'reconcile.R' 'rules.R' 'scale-construct.R' 'shipped-scales.R'\n'sweep.R' 'utils.R' 'zzz.R'",
  "Repository": "https://optimal2050.r-universe.dev",
  "Date/Publication": "2026-11-03 18:08:58 UTC",
  "RemoteUrl": "https://github.com/optimal2050/nestedscales",
  "RemoteRef": "HEAD",
  "RemoteSha": "268fa16ca105a4b5e234f14c3dfa349139b29dd1",
  "NeedsCompilation": "no",
  "Packaged": {
    "Date": "2026-11-05 01:23:24 UTC",
    "User": "root"
  },
  "Author": "Oleg Lugovoy [aut, cre] (ORCID:\n<https://orcid.org/0000-0001-5546-9875>)",
  "Maintainer": "Oleg Lugovoy <olugovoy@optimalsolution.dev>",
  "_user": "optimal2050",
  "_type": "src",
  "_file": "nestedscales_0.2.0.9000.tar.gz",
  "_fileid": "https://r2.ropensci.org/1737b3d9e697332bcc1e994348fbfccbc485a1ca812ad792a28a5b0b4fa3ec25",
  "_filesize": 632122,
  "_sha256": "1737b3d9e697332bcc1e994348fbfccbc485a1ca812ad792a28a5b0b4fa3ec25",
  "_expires": "2027-02-13T01:31:42.000Z",
  "_created": "2026-11-05T01:23:24.000Z",
  "_published": "2026-11-05T01:31:44.688Z",
  "_upstream": "https://github.com/optimal2050/nestedscales",
  "_status": "success",
  "_maintainer": {
    "name": "Oleg Lugovoy",
    "email": "olugovoy@optimalsolution.dev",
    "login": "olugovoy",
    "description": "",
    "uuid": 5607267,
    "orcid": "0000-0001-5546-9875"
  },
  "_jobs": [
    {
      "job": 126985642002,
      "time": 172,
      "config": "linux-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "13380181384"
    },
    {
      "job": 126985641890,
      "time": 143,
      "config": "linux-release-x86_64",
      "r": "4.6.2",
      "check": "OK",
      "artifact": "13379428325"
    },
    {
      "job": 126985641975,
      "time": 447,
      "config": "macos-oldrel-arm64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "13380092002"
    },
    {
      "job": 126985641875,
      "time": 223,
      "config": "macos-release-arm64",
      "r": "4.6.2",
      "check": "OK",
      "artifact": "13379452271"
    },
    {
      "job": 126984291867,
      "time": 209,
      "config": "source",
      "r": "4.6.2",
      "check": "OK",
      "artifact": "13379677353"
    },
    {
      "job": 126985641921,
      "time": 110,
      "config": "wasm-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "13379547002"
    },
    {
      "job": 126985641901,
      "time": 122,
      "config": "windows-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "13380305587"
    },
    {
      "job": 126985641918,
      "time": 119,
      "config": "windows-oldrel-x86_64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "13379866329"
    },
    {
      "job": 126985641896,
      "time": 124,
      "config": "windows-release-x86_64",
      "r": "4.6.2",
      "check": "OK",
      "artifact": "13379057992"
    }
  ],
  "_buildurl": "https://github.com/r-universe/optimal2050/actions/runs/41947746174",
  "_commit": {
    "id": "268fa16ca105a4b5e234f14c3dfa349139b29dd1",
    "author": "olugovoy <olugovoy@optimalsolution.dev>",
    "committer": "olugovoy <olugovoy@optimalsolution.dev>",
    "message": "docs update\n",
    "time": 1793729338
  },
  "_distro": "resolute",
  "_host": "GitHub-Actions",
  "_registered": true,
  "_dependencies": [
    {
      "package": "R",
      "version": ">= 4.2",
      "role": "Depends"
    },
    {
      "package": "dplyr",
      "role": "Imports"
    },
    {
      "package": "jsonlite",
      "role": "Imports"
    },
    {
      "package": "rlang",
      "role": "Imports"
    },
    {
      "package": "S7",
      "role": "Imports"
    },
    {
      "package": "stats",
      "role": "Imports"
    },
    {
      "package": "utils",
      "role": "Imports"
    },
    {
      "package": "arrow",
      "role": "Suggests"
    },
    {
      "package": "cluster",
      "role": "Suggests"
    },
    {
      "package": "data.table",
      "role": "Suggests"
    },
    {
      "package": "dtplyr",
      "role": "Suggests"
    },
    {
      "package": "ggplot2",
      "role": "Suggests"
    },
    {
      "package": "knitr",
      "role": "Suggests"
    },
    {
      "package": "pkgdown",
      "role": "Suggests"
    },
    {
      "package": "rmarkdown",
      "role": "Suggests"
    },
    {
      "package": "testthat",
      "version": ">= 3.0.0",
      "role": "Suggests"
    },
    {
      "package": "tibble",
      "role": "Suggests"
    },
    {
      "package": "withr",
      "role": "Suggests"
    },
    {
      "package": "yaml",
      "role": "Suggests"
    }
  ],
  "_owner": "optimal2050",
  "_selfowned": true,
  "_usedby": 0,
  "_updates": [
    {
      "week": "2026-38",
      "n": 1
    },
    {
      "week": "2026-40",
      "n": 1
    },
    {
      "week": "2026-41",
      "n": 12
    },
    {
      "week": "2026-42",
      "n": 2
    },
    {
      "week": "2026-43",
      "n": 4
    },
    {
      "week": "2026-45",
      "n": 2
    }
  ],
  "_tags": [
    {
      "name": "v0.2.0",
      "date": "2026-10-22"
    }
  ],
  "_stars": 1,
  "_contributors": [
    {
      "user": "olugovoy",
      "count": 22,
      "uuid": 5607267
    }
  ],
  "_userbio": {
    "uuid": 55292402,
    "type": "user",
    "name": "optimal2050",
    "followers": 19
  },
  "_downloads": {
    "count": 13,
    "source": "https://cranlogs.r-pkg.org/downloads/total/last-month/nestedscales"
  },
  "_devurl": "https://github.com/optimal2050/nestedscales",
  "_pkgdown": "https://optimal2050.github.io/nestedscales/r/",
  "_searchresults": 9,
  "_rbuild": "4.6.2",
  "_assets": [
    "extra/citation.cff",
    "extra/citation.html",
    "extra/citation.json",
    "extra/citation.txt",
    "extra/contents.json",
    "extra/manual.pdf",
    "extra/nestedscales.html",
    "extra/NEWS.html",
    "extra/NEWS.txt",
    "extra/readme.html",
    "extra/readme.md"
  ],
  "_homeurl": "https://github.com/optimal2050/nestedscales",
  "_realowner": "optimal2050",
  "_cranurl": true,
  "_releases": [
    {
      "version": "0.2.0",
      "date": "2026-11-03"
    }
  ],
  "_exports": [
    "as_scale_array",
    "as_scale_table",
    "attach_aliases_scale",
    "attach_attributes_scale",
    "backend_bind_rows",
    "backend_distinct",
    "backend_is_lazy",
    "backend_lazy",
    "backend_of",
    "backend_pull",
    "backend_restore",
    "backend_scan",
    "backend_schema",
    "clear_scale_dirs",
    "clear_scale_distances",
    "clear_scale_maps",
    "clear_scale_rules",
    "cluster_contiguous",
    "cluster_medoids",
    "cluster_scale",
    "cluster_sweep",
    "convert_scale",
    "filter_product",
    "filter_scale",
    "get_scale_distance",
    "get_scale_map",
    "get_scale_map_between",
    "get_scale_rule",
    "is_valid_frame",
    "join_product",
    "join_scale",
    "list_scale_classes",
    "list_scale_dirs",
    "list_scale_distances",
    "list_scale_maps",
    "list_scale_rules",
    "open_scale_dataset",
    "product_atoms",
    "product_coverage",
    "product_frames",
    "product_keys",
    "product_size",
    "product_weights",
    "prune_scale",
    "read_scale",
    "recast",
    "recast_crosswalk",
    "recast_from_atoms",
    "recast_product",
    "recast_scale",
    "recast_to_atoms",
    "reconcile_scale",
    "register_scale_class",
    "register_scale_dir",
    "register_scale_distance",
    "register_scale_map",
    "register_scale_map_between",
    "register_scale_rule",
    "scale_alias_property",
    "scale_aliases",
    "scale_ancestors",
    "scale_ancestry",
    "scale_atom_level",
    "scale_atom_pairs",
    "SCALE_ATTRIBUTE_KINDS",
    "scale_attributes",
    "scale_axes",
    "scale_catalog",
    "scale_children",
    "scale_class",
    "scale_coverage",
    "scale_crosses",
    "scale_dataset_info",
    "scale_descendants",
    "scale_distance",
    "SCALE_DISTANCES",
    "scale_example",
    "scale_example2",
    "scale_family",
    "scale_frames",
    "scale_from_leaftable",
    "scale_is",
    "scale_is_product",
    "scale_is_uniform",
    "scale_key",
    "scale_leaftable",
    "scale_map",
    "scale_map_between",
    "scale_match",
    "scale_nests",
    "scale_parents",
    "scale_payload_collapse",
    "scale_payload_slice",
    "scale_product",
    "scale_product_class",
    "scale_rank",
    "scale_read_payload",
    "scale_residuals",
    "SCALE_RULES",
    "scale_share",
    "scale_units",
    "scale_vocab",
    "scale_weights",
    "scale_write_payload",
    "write_scale",
    "write_scale_dataset"
  ],
  "_help": [
    {
      "page": "sub-.NestedScale",
      "title": "Subset a NestedScale",
      "topics": [
        "[.NestedScale",
        "[.nestedscales::NestedScale"
      ]
    },
    {
      "page": "as_scale_array",
      "title": "Data on scales as a dense array",
      "topics": [
        "as_scale_array",
        "as_scale_table"
      ]
    },
    {
      "page": "attach_aliases_scale",
      "title": "Attach aliases to a scale",
      "topics": [
        "attach_aliases_scale"
      ]
    },
    {
      "page": "attach_attributes_scale",
      "title": "Attach physical attributes to a scale",
      "topics": [
        "attach_attributes_scale"
      ]
    },
    {
      "page": "backend",
      "title": "Backends: the table types the verbs accept",
      "topics": [
        "backend",
        "backend_bind_rows",
        "backend_distinct",
        "backend_is_lazy",
        "backend_lazy",
        "backend_of",
        "backend_pull",
        "backend_restore",
        "backend_scan",
        "backend_schema"
      ]
    },
    {
      "page": "clear_scale_maps",
      "title": "Clear the registered crosswalks",
      "topics": [
        "clear_scale_maps"
      ]
    },
    {
      "page": "clear_scale_rules",
      "title": "Clear the rule registry",
      "topics": [
        "clear_scale_rules"
      ]
    },
    {
      "page": "cluster_contiguous",
      "title": "Cluster the units of a scale under a contiguity constraint",
      "topics": [
        "cluster_contiguous"
      ]
    },
    {
      "page": "cluster_medoids",
      "title": "The representative unit of each cluster",
      "topics": [
        "cluster_medoids"
      ]
    },
    {
      "page": "cluster_scale",
      "title": "Cluster the units of a scale into a new frame",
      "topics": [
        "cluster_scale"
      ]
    },
    {
      "page": "cluster_sweep",
      "title": "Cluster quality across a range of k",
      "topics": [
        "cluster_sweep"
      ]
    },
    {
      "page": "convert_scale",
      "title": "Convert unit-keyed quantities with a member attribute",
      "topics": [
        "convert_scale"
      ]
    },
    {
      "page": "filter_product",
      "title": "Subset a product componentwise",
      "topics": [
        "filter_product"
      ]
    },
    {
      "page": "filter_scale",
      "title": "Subset a NestedScale by unit",
      "topics": [
        "filter_scale"
      ]
    },
    {
      "page": "get_scale_rule",
      "title": "Look up a registered rule",
      "topics": [
        "get_scale_rule"
      ]
    },
    {
      "page": "is_valid_frame",
      "title": "Validate frame names",
      "topics": [
        "is_valid_frame"
      ]
    },
    {
      "page": "join_product",
      "title": "Attach every axis's labels to product-indexed data",
      "topics": [
        "join_product"
      ]
    },
    {
      "page": "join_scale",
      "title": "Attach scale labels and memberships to a dataset",
      "topics": [
        "join_scale"
      ]
    },
    {
      "page": "list_scale_rules",
      "title": "List registered rules",
      "topics": [
        "list_scale_rules"
      ]
    },
    {
      "page": "open_scale_dataset",
      "title": "Open a scale-aware dataset",
      "topics": [
        "open_scale_dataset",
        "print.scale_dataset"
      ]
    },
    {
      "page": "product_atoms",
      "title": "Realise the atoms of a product",
      "topics": [
        "product_atoms"
      ]
    },
    {
      "page": "product_coverage",
      "title": "Coverage of each axis",
      "topics": [
        "product_coverage"
      ]
    },
    {
      "page": "product_frames",
      "title": "Frames of each axis",
      "topics": [
        "product_frames"
      ]
    },
    {
      "page": "product_keys",
      "title": "The data key column of each axis",
      "topics": [
        "product_keys"
      ]
    },
    {
      "page": "product_size",
      "title": "Size of a product",
      "topics": [
        "product_size"
      ]
    },
    {
      "page": "product_weights",
      "title": "Weight columns of each axis",
      "topics": [
        "product_weights"
      ]
    },
    {
      "page": "prune_scale",
      "title": "Collapse a NestedScale to a coarser frame",
      "topics": [
        "prune_scale"
      ]
    },
    {
      "page": "recast",
      "title": "Recast data through a scale",
      "topics": [
        "recast"
      ]
    },
    {
      "page": "recast_crosswalk",
      "title": "Recast values through a given crosswalk",
      "topics": [
        "recast_crosswalk"
      ]
    },
    {
      "page": "recast_product",
      "title": "Recast data indexed by a product of scales",
      "topics": [
        "recast_product"
      ]
    },
    {
      "page": "recast_scale",
      "title": "Recast values from one resolution to another",
      "topics": [
        "recast_scale"
      ]
    },
    {
      "page": "recast_to_atoms",
      "title": "Recast unit data down to the atom layer, and back",
      "topics": [
        "recast_from_atoms",
        "recast_to_atoms"
      ]
    },
    {
      "page": "reconcile_scale",
      "title": "Check fine data against an independent parent total",
      "topics": [
        "reconcile_scale"
      ]
    },
    {
      "page": "register_scale_distance",
      "title": "Register a distance",
      "topics": [
        "clear_scale_distances",
        "get_scale_distance",
        "list_scale_distances",
        "register_scale_distance"
      ]
    },
    {
      "page": "register_scale_map",
      "title": "Register / look up a direct crosswalk",
      "topics": [
        "get_scale_map",
        "get_scale_map_between",
        "list_scale_maps",
        "register_scale_map",
        "register_scale_map_between"
      ]
    },
    {
      "page": "register_scale_rule",
      "title": "Register how a parameter should be recast",
      "topics": [
        "register_scale_rule"
      ]
    },
    {
      "page": "scale_alias_property",
      "title": "An alias property for a subclass",
      "topics": [
        "scale_alias_property"
      ]
    },
    {
      "page": "scale_aliases",
      "title": "Read the alias table",
      "topics": [
        "scale_aliases"
      ]
    },
    {
      "page": "scale_ancestry",
      "title": "Ancestry between all frame pairs",
      "topics": [
        "scale_ancestry"
      ]
    },
    {
      "page": "scale_atom_level",
      "title": "The level at which a scale enumerates its atoms",
      "topics": [
        "scale_atom_level"
      ]
    },
    {
      "page": "scale_atom_pairs",
      "title": "Atom-level correspondence between two frames",
      "topics": [
        "scale_atom_pairs"
      ]
    },
    {
      "page": "SCALE_ATTRIBUTE_KINDS",
      "title": "Kinds of attribute",
      "topics": [
        "SCALE_ATTRIBUTE_KINDS"
      ]
    },
    {
      "page": "scale_attributes",
      "title": "Read attributes, resolved along the hierarchy",
      "topics": [
        "scale_attributes"
      ]
    },
    {
      "page": "scale_axes",
      "title": "Axes of a product",
      "topics": [
        "scale_axes"
      ]
    },
    {
      "page": "scale_catalog",
      "title": "Shipped scale definitions",
      "topics": [
        "clear_scale_dirs",
        "list_scale_dirs",
        "register_scale_dir",
        "scale_catalog"
      ]
    },
    {
      "page": "scale_class",
      "title": "The scale classes, for subclassing and dispatch",
      "topics": [
        "scale_class",
        "scale_product_class"
      ]
    },
    {
      "page": "scale_coverage",
      "title": "Coverage of a sampled NestedScale",
      "topics": [
        "scale_coverage"
      ]
    },
    {
      "page": "scale_crosses",
      "title": "Do two frames form a product?",
      "topics": [
        "scale_crosses"
      ]
    },
    {
      "page": "scale_dataset_info",
      "title": "Describe a stored dataset without opening it fully",
      "topics": [
        "scale_dataset_info"
      ]
    },
    {
      "page": "scale_distance",
      "title": "Distance between the units of a scale",
      "topics": [
        "scale_distance"
      ]
    },
    {
      "page": "SCALE_DISTANCES",
      "title": "Built-in distances",
      "topics": [
        "SCALE_DISTANCES"
      ]
    },
    {
      "page": "scale_example",
      "title": "A small example NestedScale",
      "topics": [
        "scale_example"
      ]
    },
    {
      "page": "scale_example2",
      "title": "A second small example NestedScale",
      "topics": [
        "scale_example2"
      ]
    },
    {
      "page": "scale_family",
      "title": "Immediate parent-child table between two frames",
      "topics": [
        "scale_family"
      ]
    },
    {
      "page": "scale_frames",
      "title": "Frames of a NestedScale",
      "topics": [
        "names.NestedScale",
        "scale_frames"
      ]
    },
    {
      "page": "scale_from_leaftable",
      "title": "Build a NestedScale from a flat table of atoms",
      "topics": [
        "scale_from_leaftable"
      ]
    },
    {
      "page": "scale_is",
      "title": "Is this a scale, or a product of scales?",
      "topics": [
        "scale_is",
        "scale_is_product"
      ]
    },
    {
      "page": "scale_is_uniform",
      "title": "Are the units of a frame the same size?",
      "topics": [
        "scale_is_uniform"
      ]
    },
    {
      "page": "scale_key",
      "title": "The atom key column name",
      "topics": [
        "scale_key"
      ]
    },
    {
      "page": "scale_leaftable",
      "title": "The leaftable of a NestedScale",
      "topics": [
        "as.data.frame.NestedScale",
        "as.data.frame.nestedscales::NestedScale",
        "scale_leaftable"
      ]
    },
    {
      "page": "scale_map",
      "title": "Crosswalk between two frames of a scale",
      "topics": [
        "scale_map"
      ]
    },
    {
      "page": "scale_map_between",
      "title": "Crosswalk between two scales through their shared atoms",
      "topics": [
        "scale_map_between"
      ]
    },
    {
      "page": "scale_match",
      "title": "Match labels to members, strictly",
      "topics": [
        "scale_match"
      ]
    },
    {
      "page": "scale_navigate",
      "title": "Navigate a NestedScale's hierarchy",
      "topics": [
        "scale_ancestors",
        "scale_children",
        "scale_descendants",
        "scale_navigate",
        "scale_parents"
      ]
    },
    {
      "page": "scale_nests",
      "title": "Do two frames nest?",
      "topics": [
        "scale_nests"
      ]
    },
    {
      "page": "scale_payload_collapse",
      "title": "Collapse a subclass's per-atom payload",
      "topics": [
        "scale_payload_collapse"
      ]
    },
    {
      "page": "scale_payload_io",
      "title": "Write and read a subclass's payload in a definition file",
      "topics": [
        "list_scale_classes",
        "register_scale_class",
        "scale_payload_io",
        "scale_read_payload",
        "scale_write_payload"
      ]
    },
    {
      "page": "scale_payload_slice",
      "title": "Subset a subclass's per-atom payload",
      "topics": [
        "scale_payload_slice"
      ]
    },
    {
      "page": "scale_product",
      "title": "Combine scales into a product index",
      "topics": [
        "scale_product"
      ]
    },
    {
      "page": "scale_rank",
      "title": "Frame rank",
      "topics": [
        "scale_rank"
      ]
    },
    {
      "page": "scale_residuals",
      "title": "Units that are residuals",
      "topics": [
        "scale_residuals"
      ]
    },
    {
      "page": "SCALE_RULES",
      "title": "Supported aggregation rules",
      "topics": [
        "SCALE_RULES"
      ]
    },
    {
      "page": "scale_share",
      "title": "Weight shares within a frame",
      "topics": [
        "scale_share"
      ]
    },
    {
      "page": "scale_units",
      "title": "Units of a NestedScale",
      "topics": [
        "scale_units"
      ]
    },
    {
      "page": "scale_vocab",
      "title": "The dimension vocabulary of a scale",
      "topics": [
        "scale_vocab"
      ]
    },
    {
      "page": "scale_weights",
      "title": "Weight columns of a NestedScale",
      "topics": [
        "scale_weights"
      ]
    },
    {
      "page": "shipped_scales",
      "title": "Shipped definitions: 'carriers' and the IPCC 2006 fuel defaults",
      "topics": [
        "shipped_scales"
      ]
    },
    {
      "page": "summary.NestedScale",
      "title": "Summarize a NestedScale",
      "topics": [
        "print.summary_Scale",
        "summary.NestedScale",
        "summary.nestedscales::NestedScale"
      ]
    },
    {
      "page": "summary.ScaleProduct",
      "title": "Summarize a product",
      "topics": [
        "print.summary_ScaleProduct",
        "summary.nestedscales::ScaleProduct",
        "summary.ScaleProduct"
      ]
    },
    {
      "page": "write_scale",
      "title": "Write a scale as a definition file, and read one back",
      "topics": [
        "read_scale",
        "write_scale"
      ]
    },
    {
      "page": "write_scale_dataset",
      "title": "Write data and the scales that index it to one folder",
      "topics": [
        "write_scale_dataset"
      ]
    }
  ],
  "_readme": "https://github.com/optimal2050/nestedscales/raw/HEAD/README.md",
  "_rundeps": [
    "cli",
    "dplyr",
    "generics",
    "glue",
    "jsonlite",
    "lifecycle",
    "magrittr",
    "pillar",
    "pkgconfig",
    "R6",
    "rlang",
    "S7",
    "tibble",
    "tidyselect",
    "utf8",
    "vctrs",
    "withr"
  ],
  "_vignettes": [
    {
      "source": "attributes.Rmd",
      "filename": "attributes.html",
      "title": "Attributes, aliases and conversion",
      "engine": "knitr::rmarkdown",
      "headings": [
        "What problem does this solve?",
        "The shipped taxonomy",
        "Attributes are not weights",
        "Attributes live at any frame, and resolve by nearest ancestor",
        "Sources and provenance",
        "Mass to energy, with the calorific value",
        "Aggregate to carriers",
        "Emissions, one-way",
        "Where the numbers come from",
        "Model commodity codes",
        "Attaching the hierarchy, and colours",
        "Country-specific values",
        "Where next"
      ],
      "created": "2026-10-21 16:54:45",
      "modified": "2026-10-21 16:54:45",
      "commits": 1
    },
    {
      "source": "nestedscales.Rmd",
      "filename": "nestedscales.html",
      "title": "Get started with nestedscales",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Representation",
        "Transition rules",
        "Labels",
        "Subsets",
        "Attributes and aliases",
        "Definition files",
        "Several dimensions",
        "Further operations"
      ],
      "created": "2026-10-09 14:04:09",
      "modified": "2026-10-21 16:54:45",
      "commits": 2
    },
    {
      "source": "anatomy.Rmd",
      "filename": "anatomy.html",
      "title": "The NestedScale object",
      "engine": "knitr::rmarkdown",
      "headings": [
        "The object",
        "The leaftable",
        "Frames, members, ranks",
        "The attribute table",
        "The alias table",
        "Weights and meta",
        "What the validator guarantees",
        "Definition files",
        "The registry",
        "Where to next?"
      ],
      "created": "2026-10-21 16:54:45",
      "modified": "2026-10-21 16:54:45",
      "commits": 1
    }
  ],
  "_score": 4.954242509439325,
  "_indexed": true,
  "_nocasepkg": "nestedscales",
  "_universes": [
    "optimal2050",
    "olugovoy"
  ],
  "_binaries": [
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "0.2.0.9000",
      "date": "2026-11-05T01:26:07.000Z",
      "distro": "resolute",
      "commit": "268fa16ca105a4b5e234f14c3dfa349139b29dd1",
      "fileid": "https://r2.ropensci.org/752eea7adf1e6098ab81d817ffc07fb3b849e0e176dbf2fdc878b0c67d709aa2",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/optimal2050/actions/runs/41947746174"
    },
    {
      "r": "4.6.2",
      "os": "linux",
      "version": "0.2.0.9000",
      "date": "2026-11-05T01:25:36.000Z",
      "distro": "resolute",
      "commit": "268fa16ca105a4b5e234f14c3dfa349139b29dd1",
      "fileid": "https://r2.ropensci.org/20af57c9f542367a39919424d5f10063cd00cd964a32d53939b79264b07a1bc2",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/optimal2050/actions/runs/41947746174"
    },
    {
      "r": "4.5.3",
      "os": "mac",
      "version": "0.2.0.9000",
      "date": "2026-11-05T01:29:18.000Z",
      "commit": "268fa16ca105a4b5e234f14c3dfa349139b29dd1",
      "fileid": "https://r2.ropensci.org/9ed0ed36e19c1a43e35d39d2790b0c9fd767fe33f668c51eda5ebf1eecd7bd3f",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/optimal2050/actions/runs/41947746174"
    },
    {
      "r": "4.6.2",
      "os": "mac",
      "version": "0.2.0.9000",
      "date": "2026-11-05T01:25:57.000Z",
      "commit": "268fa16ca105a4b5e234f14c3dfa349139b29dd1",
      "fileid": "https://r2.ropensci.org/ddab06543b51bc0bb70f763779d0b2e0e689bc238cbe47ee7ef1dc055109f42e",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/optimal2050/actions/runs/41947746174"
    },
    {
      "r": "4.6.0",
      "os": "wasm",
      "version": "0.2.0.9000",
      "date": "2026-11-05T01:25:36.000Z",
      "commit": "268fa16ca105a4b5e234f14c3dfa349139b29dd1",
      "fileid": "https://r2.ropensci.org/a36f50383aae9cf10277e46b93d56de1408900b464ea5b878a0962d0e0e4209b",
      "status": "success",
      "buildurl": "https://github.com/r-universe/optimal2050/actions/runs/41947746174"
    },
    {
      "r": "4.7.0",
      "os": "win",
      "version": "0.2.0.9000",
      "date": "2026-11-05T01:24:43.000Z",
      "commit": "268fa16ca105a4b5e234f14c3dfa349139b29dd1",
      "fileid": "https://r2.ropensci.org/b4930180f67bffc3492afdfabdc278f180f724788f331dbc4a050dd8b8e57920",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/optimal2050/actions/runs/41947746174"
    },
    {
      "r": "4.5.3",
      "os": "win",
      "version": "0.2.0.9000",
      "date": "2026-11-05T01:24:46.000Z",
      "commit": "268fa16ca105a4b5e234f14c3dfa349139b29dd1",
      "fileid": "https://r2.ropensci.org/67c61d2f72c58e493041cb1a953c4240c7fd611d3314029174525f17052d1e67",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/optimal2050/actions/runs/41947746174"
    },
    {
      "r": "4.6.2",
      "os": "win",
      "version": "0.2.0.9000",
      "date": "2026-11-05T01:24:44.000Z",
      "commit": "268fa16ca105a4b5e234f14c3dfa349139b29dd1",
      "fileid": "https://r2.ropensci.org/1cd9b6690755a3cf4d813f89d935d700c39330bb8867241dd2c9bc7cdeb62307",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/optimal2050/actions/runs/41947746174"
    }
  ]
}