{
  "_id": "6a1f0f2db401979e7341d51f",
  "Package": "rollupTree",
  "Title": "Perform Recursive Computations",
  "Version": "0.4.1",
  "Authors@R": "person(given=c(\"James\", \"Steven\"), family=\"Jenkins\",\nemail = \"sjenkins@studioj.us\",\nrole = c(\"aut\", \"cre\", \"cph\"),\ncomment = c(ORCID = \"0000-0002-0725-0884\")\n)",
  "Description": "Mass rollup for a Bill of Materials is an example of a\nclass of computations in which elements are arranged in a tree\nstructure and some property of each element is a computed\nfunction of the corresponding values of its child elements.\nLeaf elements, i.e., those with no children, have values\nassigned. In many cases, the combining function is simple\narithmetic sum; in other cases (e.g., mass properties), the\ncombiner may involve other information such as the geometric\nrelationship between parent and child, or statistical relations\nsuch as root-sum-of-squares (RSS). This package implements a\ngeneral function for such problems. It is adapted to specific\nrecursive computations by functional programming techniques;\nthe caller passes a function as the update parameter to\nrollup() (or, at a lower level, passes functions as the get,\nset, combine, and override parameters to update_prop()) at\nruntime to specify the desired operations. The implementation\nrelies on graph-theoretic algorithms from the 'igraph' package\nof Csárdi, et al. (2006 <doi:10.5281/zenodo.7682609>).",
  "License": "MIT + file LICENSE",
  "Encoding": "UTF-8",
  "Roxygen": "list(markdown = TRUE)",
  "RoxygenNote": "7.3.2",
  "LazyData": "true",
  "Config/testthat/edition": "3",
  "VignetteBuilder": "knitr",
  "URL": "https://jsjuni.github.io/rollupTree/,\nhttps://github.com/jsjuni/rollupTree",
  "BugReports": "https://github.com/jsjuni/rollupTree/issues",
  "Config/pak/sysreqs": "libglpk-dev libxml2-dev",
  "Repository": "https://jsjuni.r-universe.dev",
  "Date/Publication": "2026-02-10 16:06:43 UTC",
  "RemoteUrl": "https://github.com/jsjuni/rolluptree",
  "RemoteRef": "HEAD",
  "RemoteSha": "99f78ce710f9f4be893f9a14c29724ea9fdca838",
  "NeedsCompilation": "no",
  "Packaged": {
    "Date": "2026-05-17 08:41:04 UTC",
    "User": "root"
  },
  "Author": "James Steven Jenkins [aut, cre, cph] (ORCID:\n<https://orcid.org/0000-0002-0725-0884>)",
  "Maintainer": "James Steven Jenkins <sjenkins@studioj.us>",
  "MD5sum": "fa5a49f852c04c8947036216f3dbe527",
  "_user": "jsjuni",
  "_type": "src",
  "_file": "rollupTree_0.4.1.tar.gz",
  "_fileid": "294590d6f63015293cafe242aaad488ec0fb214ff414e853a25eb38a5a66a689",
  "_filesize": 556368,
  "_sha256": "294590d6f63015293cafe242aaad488ec0fb214ff414e853a25eb38a5a66a689",
  "_created": "2026-05-17T08:41:04.000Z",
  "_published": "2026-06-02T17:13:17.815Z",
  "_distro": "noble",
  "_jobs": [
    {
      "job": 79129129288,
      "time": 128,
      "config": "linux-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "7040912303"
    },
    {
      "job": 79129129423,
      "time": 122,
      "config": "linux-release-x86_64",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7040911702"
    },
    {
      "job": 79129129492,
      "time": 90,
      "config": "macos-oldrel-arm64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "7040908132"
    },
    {
      "job": 79129129377,
      "time": 73,
      "config": "macos-release-arm64",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7040906344"
    },
    {
      "job": 79129128201,
      "time": 186,
      "config": "source",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7040897968"
    },
    {
      "job": 79129128408,
      "time": 107,
      "config": "wasm-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7364768769"
    },
    {
      "job": 79129129329,
      "time": 94,
      "config": "windows-devel",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "7040908704"
    },
    {
      "job": 79129129447,
      "time": 68,
      "config": "windows-oldrel",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "7040905831"
    },
    {
      "job": 79129129455,
      "time": 76,
      "config": "windows-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7040906623"
    }
  ],
  "_buildurl": "https://github.com/r-universe/jsjuni/actions/runs/25986069623",
  "_status": "success",
  "_host": "GitHub-Actions",
  "_upstream": "https://github.com/jsjuni/rolluptree",
  "_commit": {
    "id": "99f78ce710f9f4be893f9a14c29724ea9fdca838",
    "author": "James Steven Jenkins <sjenkins@studioj.us>",
    "committer": "James Steven Jenkins <sjenkins@studioj.us>",
    "message": "Increment version number to 0.4.1\n",
    "time": 1770739603
  },
  "_maintainer": {
    "name": "James Steven Jenkins",
    "email": "sjenkins@studioj.us",
    "login": "jsjuni",
    "description": "Principal Engineer (Retired),\nJet Propulsion Laboratory,\nCalifornia Institute of Technology",
    "uuid": 157311,
    "orcid": "0000-0002-0725-0884"
  },
  "_registered": true,
  "_dependencies": [
    {
      "package": "R",
      "version": ">= 3.5",
      "role": "Depends"
    },
    {
      "package": "igraph",
      "role": "Imports"
    },
    {
      "package": "knitr",
      "role": "Suggests"
    },
    {
      "package": "rmarkdown",
      "role": "Suggests"
    },
    {
      "package": "testthat",
      "version": ">= 3.0.0",
      "role": "Suggests"
    }
  ],
  "_owner": "jsjuni",
  "_selfowned": true,
  "_usedby": 1,
  "_updates": [
    {
      "week": "2025-25",
      "n": 4
    },
    {
      "week": "2026-05",
      "n": 8
    },
    {
      "week": "2026-07",
      "n": 1
    }
  ],
  "_tags": [
    {
      "name": "v0.3.2",
      "date": "2025-06-17"
    },
    {
      "name": "v0.4.0",
      "date": "2026-01-29"
    },
    {
      "name": "v0.4.1",
      "date": "2026-02-10"
    }
  ],
  "_stars": 4,
  "_contributors": [
    {
      "user": "jsjuni",
      "count": 124,
      "uuid": 157311
    }
  ],
  "_userbio": {
    "uuid": 157311,
    "type": "user",
    "name": "Steven Jenkins",
    "description": "Principal Engineer (Retired),\r\nJet Propulsion Laboratory,\r\nCalifornia Institute of Technology"
  },
  "_downloads": {
    "count": 580,
    "source": "https://cranlogs.r-pkg.org/downloads/total/last-month/rollupTree"
  },
  "_devurl": "https://github.com/jsjuni/rolluptree",
  "_pkgdown": "https://jsjuni.github.io/rollupTree/",
  "_searchresults": 5,
  "_rbuild": "4.6.0",
  "_assets": [
    "extra/citation.cff",
    "extra/citation.html",
    "extra/citation.json",
    "extra/citation.txt",
    "extra/contents.json",
    "extra/NEWS.html",
    "extra/NEWS.txt",
    "extra/readme.html",
    "extra/readme.md",
    "extra/rollupTree.html",
    "manual.pdf"
  ],
  "_homeurl": "https://github.com/jsjuni/rolluptree",
  "_realowner": "jsjuni",
  "_cranurl": true,
  "_releases": [
    {
      "version": "0.1.0",
      "date": "2025-01-20"
    },
    {
      "version": "0.2.0",
      "date": "2025-02-04"
    },
    {
      "version": "0.3.0",
      "date": "2025-03-06"
    },
    {
      "version": "0.3.1",
      "date": "2025-04-19"
    },
    {
      "version": "0.3.2",
      "date": "2025-06-18"
    },
    {
      "version": "0.4.0",
      "date": "2026-01-30"
    },
    {
      "version": "0.4.1",
      "date": "2026-02-16"
    }
  ],
  "_exports": [
    "create_rollup_tree",
    "default_validate_dag",
    "default_validate_tree",
    "df_get_by_id",
    "df_get_by_key",
    "df_get_ids",
    "df_get_keys",
    "df_get_row_by_id",
    "df_get_row_by_key",
    "df_set_by_id",
    "df_set_by_key",
    "df_set_row_by_id",
    "df_set_row_by_key",
    "rollup",
    "update_df_prop_by_id",
    "update_df_prop_by_key",
    "update_prop",
    "update_rollup",
    "validate_df_by_id",
    "validate_df_by_key",
    "validate_ds"
  ],
  "_datasets": [
    {
      "name": "fault_table",
      "title": "Example Fault Tree Data",
      "object": "fault_table",
      "class": [
        "data.frame"
      ],
      "fields": [
        "id",
        "type",
        "prob"
      ],
      "rows": 8,
      "table": true,
      "tojson": true
    },
    {
      "name": "fault_tree",
      "title": "Example Fault Tree",
      "object": "fault_tree",
      "class": [
        "igraph"
      ],
      "fields": [],
      "table": false,
      "tojson": false
    },
    {
      "name": "test_dag",
      "title": "Example Directed Acyclic Graph",
      "object": "test_dag",
      "class": [
        "igraph"
      ],
      "fields": [],
      "table": false,
      "tojson": false
    },
    {
      "name": "wbs_table",
      "title": "Example Work Breakdown Structure Data",
      "object": "wbs_table",
      "class": [
        "data.frame"
      ],
      "fields": [
        "id",
        "pid",
        "name",
        "work",
        "budget"
      ],
      "rows": 10,
      "table": true,
      "tojson": true
    },
    {
      "name": "wbs_table_rollup",
      "title": "Example Work Breakdown Structure Data After Rollup",
      "object": "wbs_table_rollup",
      "class": [
        "data.frame"
      ],
      "fields": [
        "id",
        "pid",
        "name",
        "work",
        "budget"
      ],
      "rows": 10,
      "table": true,
      "tojson": true
    },
    {
      "name": "wbs_tree",
      "title": "Example Work Breakdown Structure Data",
      "object": "wbs_tree",
      "class": [
        "igraph"
      ],
      "fields": [],
      "table": false,
      "tojson": false
    }
  ],
  "_help": [
    {
      "page": "create_rollup_tree",
      "title": "Create a tree for use with 'rollup()'",
      "topics": [
        "create_rollup_tree"
      ]
    },
    {
      "page": "default_validate_dag",
      "title": "Validate a directed acyclic graph for use with rollup",
      "topics": [
        "default_validate_dag"
      ]
    },
    {
      "page": "default_validate_tree",
      "title": "Validate a tree for use with 'rollup()'",
      "topics": [
        "default_validate_tree"
      ]
    },
    {
      "page": "df_get_by_id",
      "title": "Get property by key \"id\" from data frame",
      "topics": [
        "df_get_by_id"
      ]
    },
    {
      "page": "df_get_by_key",
      "title": "Get row by key \"id\" from data frame",
      "topics": [
        "df_get_by_key"
      ]
    },
    {
      "page": "df_get_ids",
      "title": "Get ids from a data frame",
      "topics": [
        "df_get_ids"
      ]
    },
    {
      "page": "df_get_keys",
      "title": "Get keys from a data frame",
      "topics": [
        "df_get_keys"
      ]
    },
    {
      "page": "df_get_row_by_id",
      "title": "Get row by key from data frame",
      "topics": [
        "df_get_row_by_id"
      ]
    },
    {
      "page": "df_get_row_by_key",
      "title": "Get row by key from data frame",
      "topics": [
        "df_get_row_by_key"
      ]
    },
    {
      "page": "df_set_by_id",
      "title": "Set property by key \"id\" in data frame",
      "topics": [
        "df_set_by_id"
      ]
    },
    {
      "page": "df_set_by_key",
      "title": "Set property by key in data frame",
      "topics": [
        "df_set_by_key"
      ]
    },
    {
      "page": "df_set_row_by_id",
      "title": "Set row by key \"id\" in data frame",
      "topics": [
        "df_set_row_by_id"
      ]
    },
    {
      "page": "df_set_row_by_key",
      "title": "Set row by key in data frame",
      "topics": [
        "df_set_row_by_key"
      ]
    },
    {
      "page": "fault_table",
      "title": "Example Fault Tree Data",
      "topics": [
        "fault_table"
      ]
    },
    {
      "page": "fault_tree",
      "title": "Example Fault Tree",
      "topics": [
        "fault_tree"
      ]
    },
    {
      "page": "rollup",
      "title": "Perform recursive computation",
      "topics": [
        "rollup"
      ]
    },
    {
      "page": "test_dag",
      "title": "Example Directed Acyclic Graph",
      "topics": [
        "test_dag"
      ]
    },
    {
      "page": "update_df_prop_by_id",
      "title": "Update a property in a data frame with key \"id\"",
      "topics": [
        "update_df_prop_by_id"
      ]
    },
    {
      "page": "update_df_prop_by_key",
      "title": "Update a property in a data frame",
      "topics": [
        "update_df_prop_by_key"
      ]
    },
    {
      "page": "update_prop",
      "title": "Update a data set with recursively-defined properties",
      "topics": [
        "update_prop"
      ]
    },
    {
      "page": "update_rollup",
      "title": "Update a rollup from a single leaf vertex",
      "topics": [
        "update_rollup"
      ]
    },
    {
      "page": "validate_df_by_id",
      "title": "Validate a data frame with key \"id\" for 'rollup()'",
      "topics": [
        "validate_df_by_id"
      ]
    },
    {
      "page": "validate_df_by_key",
      "title": "Validate a data frame For 'rollup()'",
      "topics": [
        "validate_df_by_key"
      ]
    },
    {
      "page": "validate_ds",
      "title": "Validates a data set for use with 'rollup()'",
      "topics": [
        "validate_ds"
      ]
    },
    {
      "page": "wbs_table",
      "title": "Example Work Breakdown Structure Data",
      "topics": [
        "wbs_table"
      ]
    },
    {
      "page": "wbs_table_rollup",
      "title": "Example Work Breakdown Structure Data After Rollup",
      "topics": [
        "wbs_table_rollup"
      ]
    },
    {
      "page": "wbs_tree",
      "title": "Example Work Breakdown Structure Data",
      "topics": [
        "wbs_tree"
      ]
    }
  ],
  "_readme": "https://github.com/jsjuni/rolluptree/raw/HEAD/README.md",
  "_rundeps": [
    "cli",
    "cpp11",
    "glue",
    "igraph",
    "lattice",
    "lifecycle",
    "magrittr",
    "Matrix",
    "pkgconfig",
    "rlang",
    "vctrs"
  ],
  "_vignettes": [
    {
      "source": "rollupTree.Rmd",
      "filename": "rollupTree.html",
      "title": "rollupTree",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Overview",
        "Example With A Data Frame",
        "WBS Tree",
        "Summing a Single Numeric Property",
        "Chaining Rollups",
        "Chaining Update Methods",
        "Custom get, set, and update Methods",
        "Custom combine Method",
        "Example With A List",
        "Example With A Tree",
        "Simple Fault Tree Analysis",
        "References"
      ],
      "created": "2025-01-12 21:56:54",
      "modified": "2025-06-17 17:16:30",
      "commits": 13
    }
  ],
  "_score": 5.2552725051033065,
  "_indexed": true,
  "_nocasepkg": "rolluptree",
  "_universes": [
    "jsjuni"
  ],
  "_binaries": [
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "0.4.1",
      "date": "2026-05-17T08:43:12.000Z",
      "distro": "noble",
      "commit": "99f78ce710f9f4be893f9a14c29724ea9fdca838",
      "fileid": "ea8b3c2913242f5ba841a7b98d8b886af201009104501095bf3c89d7352fd832",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/jsjuni/actions/runs/25986069623"
    },
    {
      "r": "4.6.0",
      "os": "linux",
      "version": "0.4.1",
      "date": "2026-05-17T08:43:09.000Z",
      "distro": "noble",
      "commit": "99f78ce710f9f4be893f9a14c29724ea9fdca838",
      "fileid": "3c56624631e065379cba1b0b371176af218c83ccb92ceb7fa9127a7937a3625a",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/jsjuni/actions/runs/25986069623"
    },
    {
      "r": "4.5.3",
      "os": "mac",
      "version": "0.4.1",
      "date": "2026-05-17T08:42:39.000Z",
      "commit": "99f78ce710f9f4be893f9a14c29724ea9fdca838",
      "fileid": "9827df45b2dbeb1f5d283a3e49c4339561c99ebe323f52e762f106a7ed457e92",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/jsjuni/actions/runs/25986069623"
    },
    {
      "r": "4.6.0",
      "os": "mac",
      "version": "0.4.1",
      "date": "2026-05-17T08:42:25.000Z",
      "commit": "99f78ce710f9f4be893f9a14c29724ea9fdca838",
      "fileid": "578fc85e02ca0ae4734a070b4182a2fcd6b89896bd79881c1f5b047deb09e11b",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/jsjuni/actions/runs/25986069623"
    },
    {
      "r": "4.7.0",
      "os": "win",
      "version": "0.4.1",
      "date": "2026-05-17T08:42:38.000Z",
      "commit": "99f78ce710f9f4be893f9a14c29724ea9fdca838",
      "fileid": "e462a0871414e481a846cc7abf787b913736b7e6bd5c7a54dc94ce9330f746e2",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/jsjuni/actions/runs/25986069623"
    },
    {
      "r": "4.5.3",
      "os": "win",
      "version": "0.4.1",
      "date": "2026-05-17T08:42:13.000Z",
      "commit": "99f78ce710f9f4be893f9a14c29724ea9fdca838",
      "fileid": "98a03ae8f9aaba290e0190580d8bc1875c940b2e73252a80ed1e0a263024a591",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/jsjuni/actions/runs/25986069623"
    },
    {
      "r": "4.6.0",
      "os": "win",
      "version": "0.4.1",
      "date": "2026-05-17T08:42:19.000Z",
      "commit": "99f78ce710f9f4be893f9a14c29724ea9fdca838",
      "fileid": "b076e8fd5192dd8d3d1983e9b28f9fd1b8d8ff714c49fe569c977683034cdb63",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/jsjuni/actions/runs/25986069623"
    },
    {
      "r": "4.6.0",
      "os": "wasm",
      "version": "0.4.1",
      "date": "2026-06-02T17:12:56.000Z",
      "commit": "99f78ce710f9f4be893f9a14c29724ea9fdca838",
      "fileid": "ee58cbff7db7cb2e9044ac2e60b49aa8ba14c02779194406787d9fc0ed99cfbf",
      "status": "success",
      "buildurl": "https://github.com/r-universe/jsjuni/actions/runs/25986069623"
    }
  ]
}