{
  "_id": "6ae24c068d250e7ad09eec05",
  "Package": "RASbound",
  "Title": "Bounded RAS / Biproportional Matrix Balancing with Cell-Level\nConstraints",
  "Version": "0.0.1",
  "Authors@R": "c(\nperson(given = \"Jose M.\",\nfamily = \"Pavía\",\nrole = c(\"aut\", \"cre\"),\nemail = \"jose.m.pavia@uv.es\",\ncomment = c(ORCID = \"0000-0002-0129-726X\"))\n)",
  "Description": "Implements the RAS method for adjusting a matrix to match\ntarget row and column totals. In RAS, a matrix A is multiplied\non the left by a diagonal matrix R and on the right by a\ndiagonal matrix S, which gives the method its name. It is also\nknown as biproportional matrix balancing, iterative\nproportional fitting (IPF) or raking. The package extends it\nwith lower and upper bounds on individual cells. Provides\nseveral algorithmic variants for handling bound violations:\nhard cell-freezing with simultaneous, sequential, or hybrid\nfixation; two dependency-free clamp-and-compensate heuristics\n(proportional redistribution and iterative renormalization);\nand a naive unconstrained-recompute baseline; together with\nthin wrapper functions exposing equivalent bounded-calibration\nmethods from the 'survey' package under a common interface.\nIntended for updating or regionalizing input-output tables,\nsocial accounting matrices (SAMs), and other applications where\nclassic RAS/IPF is used but cell-level plausibility ranges must\nbe respected. References: Deming and Stephan (1940)\n<doi:10.1214/aoms/1177731829> Deville, Saerndal and Sautory\n(1993) <doi:10.1080/01621459.1993.10476369> Acknowledgements:\nThe author wishes to thank Conselleria de Educacion, Cultura y\nUniversidades, Generalitat Valenciana (grant CIAICO/2023/031)\nfor supporting this research.",
  "License": "GPL-3",
  "Encoding": "UTF-8",
  "RoxygenNote": "7.3.2",
  "Config/testthat/edition": "3",
  "VignetteBuilder": "knitr",
  "URL": "https://github.com/JMPavia/RASbound",
  "BugReports": "https://github.com/JMPavia/RASbound/issues",
  "NeedsCompilation": "no",
  "Packaged": {
    "Date": "2026-10-28 19:22:13 UTC",
    "User": "root"
  },
  "Author": "Jose M. Pavía [aut, cre] (ORCID:\n<https://orcid.org/0000-0002-0129-726X>)",
  "Maintainer": "Jose M. Pavía <jose.m.pavia@uv.es>",
  "Repository": "https://cran.r-universe.dev",
  "Date/Publication": "2026-10-28 11:30:10 UTC",
  "RemoteUrl": "https://github.com/cran/RASbound",
  "RemoteRef": "HEAD",
  "RemoteSha": "6704da3c9f717f680ddb8a3a43ffb1d27e848088",
  "_user": "cran",
  "_type": "src",
  "_file": "RASbound_0.0.1.tar.gz",
  "_fileid": "https://r2.ropensci.org/304b7dbf4363fabc521dfb0998d5da1ff5749a790e1a94d4b32b114576b8b64d",
  "_filesize": 280500,
  "_sha256": "304b7dbf4363fabc521dfb0998d5da1ff5749a790e1a94d4b32b114576b8b64d",
  "_expires": "2027-02-05T19:24:52.000Z",
  "_created": "2026-10-28T19:22:13.000Z",
  "_published": "2026-10-28T19:24:54.487Z",
  "_upstream": "https://github.com/cran/RASbound",
  "_status": "success",
  "_maintainer": {
    "name": "Jose M. Pavía",
    "email": "jose.m.pavia@uv.es",
    "orcid": "0000-0002-0129-726X"
  },
  "_jobs": [
    {
      "job": 123046964588,
      "time": 120,
      "config": "linux-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "12845211895"
    },
    {
      "job": 123046964506,
      "time": 99,
      "config": "linux-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "12845800140"
    },
    {
      "job": 123043728605,
      "time": 363,
      "config": "source",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "12845272148"
    },
    {
      "job": 123046964469,
      "time": 83,
      "config": "wasm-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "12844473123"
    },
    {
      "job": 123046964743,
      "time": 73,
      "config": "windows-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "12845162784"
    },
    {
      "job": 123046964664,
      "time": 63,
      "config": "windows-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "12845386446"
    }
  ],
  "_buildurl": "https://github.com/r-universe/cran/actions/runs/40752732828",
  "_commit": {
    "id": "6704da3c9f717f680ddb8a3a43ffb1d27e848088",
    "author": "Jose M. Pavía <jose.m.pavia@uv.es>",
    "committer": "cran-robot <csardi.gabor+cran@gmail.com>",
    "message": "version 0.0.1\n",
    "time": 1793187010
  },
  "_distro": "resolute",
  "_host": "GitHub-Actions",
  "_registered": true,
  "_dependencies": [
    {
      "package": "R",
      "version": ">= 3.6",
      "role": "Depends"
    },
    {
      "package": "stats",
      "role": "Imports"
    },
    {
      "package": "graphics",
      "role": "Imports"
    },
    {
      "package": "grDevices",
      "role": "Imports"
    },
    {
      "package": "utils",
      "role": "Imports"
    },
    {
      "package": "survey",
      "role": "Suggests"
    },
    {
      "package": "MASS",
      "role": "Suggests"
    },
    {
      "package": "testthat",
      "version": ">= 3.0.0",
      "role": "Suggests"
    },
    {
      "package": "knitr",
      "role": "Suggests"
    },
    {
      "package": "rmarkdown",
      "role": "Suggests"
    }
  ],
  "_owner": "cran",
  "_selfowned": false,
  "_usedby": 0,
  "_updates": [
    {
      "week": "2026-44",
      "n": 1
    }
  ],
  "_tags": [
    {
      "name": "0.0.1",
      "date": "2026-10-28"
    }
  ],
  "_stars": 0,
  "_userbio": {
    "uuid": 6899542,
    "type": "organization",
    "name": "cran",
    "followers": 634,
    "description": "Unofficial read-only mirror of all CRAN R packages"
  },
  "_downloads": {
    "count": 0,
    "source": "https://cranlogs.r-pkg.org/downloads/total/last-month/RASbound"
  },
  "_devurl": "https://github.com/jmpavia/rasbound",
  "_searchresults": 0,
  "_rbuild": "4.6.1",
  "_assets": [
    "extra/citation.cff",
    "extra/citation.html",
    "extra/citation.json",
    "extra/citation.txt",
    "extra/contents.json",
    "extra/manual.pdf",
    "extra/RASbound.html",
    "extra/readme.html",
    "extra/readme.md"
  ],
  "_cranurl": false,
  "_releases": [
    {
      "version": "0.0.1",
      "date": "2026-10-28"
    }
  ],
  "_exports": [
    "bras_calibrate_linear",
    "bras_calibrate_logit",
    "bras_calibrate_raking",
    "bras_cap_iter",
    "bras_freeze_hybrid",
    "bras_freeze_seq",
    "bras_freeze_sim",
    "bras_naive",
    "bras_soft",
    "ras"
  ],
  "_help": [
    {
      "page": "bras_calibrate_linear",
      "title": "Bounded RAS via 'survey::calibrate(calfun = \"linear\")' (wrapper)",
      "topics": [
        "bras_calibrate_linear"
      ]
    },
    {
      "page": "bras_calibrate_logit",
      "title": "Bounded RAS via 'survey::calibrate(calfun = \"logit\")' (wrapper)",
      "topics": [
        "bras_calibrate_logit"
      ]
    },
    {
      "page": "bras_calibrate_raking",
      "title": "Bounded RAS via 'survey::calibrate(calfun = \"raking\")' (wrapper)",
      "topics": [
        "bras_calibrate_raking"
      ]
    },
    {
      "page": "bras_cap_iter",
      "title": "Bounded RAS: iterative capping with renormalization",
      "topics": [
        "bras_cap_iter"
      ]
    },
    {
      "page": "bras_fit",
      "title": "The 'bras_fit' result object",
      "topics": [
        "bras_fit",
        "bras_fit-class"
      ]
    },
    {
      "page": "bras_freeze_hybrid",
      "title": "Bounded RAS: hybrid hard-freeze variant (simultaneous with sequential fallback)",
      "topics": [
        "bras_freeze_hybrid"
      ]
    },
    {
      "page": "bras_freeze_seq",
      "title": "Bounded RAS: sequential hard-freeze variant (most-extreme cell first)",
      "topics": [
        "bras_freeze_seq"
      ]
    },
    {
      "page": "bras_freeze_sim",
      "title": "Bounded RAS: simultaneous hard-freeze variant",
      "topics": [
        "bras_freeze_sim"
      ]
    },
    {
      "page": "bras_naive",
      "title": "Bounded RAS: naive recompute-every-pass variant (baseline, not recommended)",
      "topics": [
        "bras_naive"
      ]
    },
    {
      "page": "bras_soft",
      "title": "Bounded RAS: soft proportional redistribution variant",
      "topics": [
        "bras_soft"
      ]
    },
    {
      "page": "plot.bras_fit",
      "title": "Plot which cells were fixed at a bound",
      "topics": [
        "plot.bras_fit"
      ]
    },
    {
      "page": "print.bras_fit",
      "title": "Print a fitted bounded-RAS object",
      "topics": [
        "print.bras_fit"
      ]
    },
    {
      "page": "ras",
      "title": "Classic RAS (no bounds)",
      "topics": [
        "ras"
      ]
    },
    {
      "page": "summary.bras_fit",
      "title": "Summarize a fitted bounded-RAS object",
      "topics": [
        "summary.bras_fit"
      ]
    }
  ],
  "_readme": "https://github.com/cran/RASbound/raw/HEAD/README.md",
  "_rundeps": [],
  "_vignettes": [
    {
      "source": "RASbound-example.Rmd",
      "filename": "RASbound-example.html",
      "title": "A worked example: a 57 x 57 input-output-style table",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Hard-freeze variants",
        "Where the bounds bind",
        "The survey wrappers on the same problem"
      ],
      "created": "2026-10-28 11:30:10",
      "modified": "2026-10-28 11:30:10",
      "commits": 1
    },
    {
      "source": "RASbound-diagnostics.Rmd",
      "filename": "RASbound-diagnostics.html",
      "title": "Advanced diagnostics",
      "engine": "knitr::rmarkdown",
      "headings": [
        "A running example",
        "Reading fixed_cells",
        "Diagnosing infeasibility",
        "feasible = TRUE but converged = FALSE",
        "Cells that must be exactly zero",
        "Comparing variants on the same problem",
        "bras_calibrate_linear() and bras_calibrate_raking() give different matrices",
        "When bras_calibrate_logit() fails",
        "When bras_freeze_hybrid()'s per-pass fallback is not enough",
        "A stall: no violated bound, but the margins do not match",
        "A real infeasible case: a stall with no solution behind it"
      ],
      "created": "2026-10-28 11:30:10",
      "modified": "2026-10-28 11:30:10",
      "commits": 1
    },
    {
      "source": "RASbound-intro.Rmd",
      "filename": "RASbound-intro.html",
      "title": "Introduction to RASbound",
      "engine": "knitr::rmarkdown",
      "headings": [
        "The problem",
        "A minimal example",
        "Which function should I use?",
        "The hard-freeze family",
        "The reference variants",
        "The survey wrappers",
        "Where to go next"
      ],
      "created": "2026-10-28 11:30:10",
      "modified": "2026-10-28 11:30:10",
      "commits": 1
    }
  ],
  "_score": 3.1760912590556813,
  "_indexed": true,
  "_nocasepkg": "rasbound",
  "_universes": [
    "cran",
    "jmpavia"
  ],
  "_binaries": [
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "0.0.1",
      "date": "2026-10-28T19:24:13.000Z",
      "distro": "resolute",
      "commit": "6704da3c9f717f680ddb8a3a43ffb1d27e848088",
      "fileid": "https://r2.ropensci.org/38a788ba8ce15786af12217238c5f26a1aa0701fdc87675ac1c983ed47354e50",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/cran/actions/runs/40752732828"
    },
    {
      "r": "4.6.1",
      "os": "linux",
      "version": "0.0.1",
      "date": "2026-10-28T19:24:02.000Z",
      "distro": "resolute",
      "commit": "6704da3c9f717f680ddb8a3a43ffb1d27e848088",
      "fileid": "https://r2.ropensci.org/5cdf1961e6d6598b1f644a80aeceb4f16dd45416582740fb2375638291b6cf77",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/cran/actions/runs/40752732828"
    },
    {
      "r": "4.6.0",
      "os": "wasm",
      "version": "0.0.1",
      "date": "2026-10-28T19:23:57.000Z",
      "commit": "6704da3c9f717f680ddb8a3a43ffb1d27e848088",
      "fileid": "https://r2.ropensci.org/d0b3cb16c9a6f125a5bf85cc9a100a3b9339d73ce765c68957e186cfa459cfe2",
      "status": "success",
      "buildurl": "https://github.com/r-universe/cran/actions/runs/40752732828"
    },
    {
      "r": "4.7.0",
      "os": "win",
      "version": "0.0.1",
      "date": "2026-10-28T19:23:26.000Z",
      "commit": "6704da3c9f717f680ddb8a3a43ffb1d27e848088",
      "fileid": "https://r2.ropensci.org/0931e7279497afe6e755ae46e9a269028f40237045b88e25f357d217f6d21ca6",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/cran/actions/runs/40752732828"
    },
    {
      "r": "4.6.1",
      "os": "win",
      "version": "0.0.1",
      "date": "2026-10-28T19:23:20.000Z",
      "commit": "6704da3c9f717f680ddb8a3a43ffb1d27e848088",
      "fileid": "https://r2.ropensci.org/e3ca766606b617d9b3ef2ea9996318b569148a1433cc825c0b8073ee83f3689e",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/cran/actions/runs/40752732828"
    }
  ]
}