{
  "_id": "6a1e9cc91d7bb097a0a6efe4",
  "Type": "Package",
  "Package": "optimall",
  "Title": "Allocate Samples Among Strata",
  "Version": "1.4.0",
  "Authors@R": "c(\nperson(given = \"Jasper\",\nfamily = \"Yang\",\nrole = c(\"aut\", \"cre\"),\nemail = \"jbyang@uw.edu\"),\nperson(given = \"Pamela\",\nfamily = \"Shaw\",\nrole = \"aut\"),\nperson(given = \"Bryan\",\nfamily = \"Shepherd\",\nrole = \"ctb\"),\nperson(given = \"Thomas\",\nfamily = \"Lumley\",\nrole = \"ctb\"),\nperson(given = \"Gustavo\",\nfamily = \"Amorim\",\nrole = \"rev\"))",
  "Maintainer": "Jasper Yang <jbyang@uw.edu>",
  "Description": "Functions for the design process of survey sampling, with\nspecific tools for multi-wave and multi-phase designs. Perform\noptimum allocation using Neyman (1934) <doi:10.2307/2342192> or\nWright (2012) <doi:10.1080/00031305.2012.733679> allocation,\nsplit strata based on quantiles or values of known variables,\nrandomly select samples from strata, allocate sampling waves\niteratively, and organize a complex survey design. Also\nincludes a Shiny application for observing the effects of\ndifferent strata splits. A paper on this package was published\nin the Journal of Statistical Software\n<doi:10.18637/jss.v114.i10>.",
  "License": "GPL-3",
  "URL": "https://github.com/yangjasp/optimall",
  "BugReports": "https://github.com/yangjasp/optimall/issues",
  "VignetteBuilder": "knitr",
  "Encoding": "UTF-8",
  "LazyData": "true",
  "Roxygen": "list(markdown = TRUE)",
  "RoxygenNote": "7.3.1",
  "Collate": "'allocate_wave.R' 'sample_strata.R' 'wave.R' 'phase.R'\n'multiwave.R' 'merge_samples.R' 'optimum_allocation.R'\n'set_mw.R' 'get_mw.R' 'apply_multiwave.R' 'matwgt_sim.R'\n'merge_strata.R' 'multiwave_diagram.R' 'optimall_shiny.R'\n'split_strata.R' 'summary.multiwave.R'",
  "Repository": "https://yangjasp.r-universe.dev",
  "Date/Publication": "2026-04-03 22:08:28 UTC",
  "RemoteUrl": "https://github.com/yangjasp/optimall",
  "RemoteRef": "HEAD",
  "RemoteSha": "2455cc79648ba167062acf85dd5f4898f3e397aa",
  "NeedsCompilation": "no",
  "Packaged": {
    "Date": "2026-06-02 09:00:09 UTC",
    "User": "root"
  },
  "Author": "Jasper Yang [aut, cre],\nPamela Shaw [aut],\nBryan Shepherd [ctb],\nThomas Lumley [ctb],\nGustavo Amorim [rev]",
  "MD5sum": "c15ff8d9991d43df14f336e1a928945f",
  "_user": "yangjasp",
  "_type": "src",
  "_file": "optimall_1.4.0.tar.gz",
  "_fileid": "9f27b810493b6fecdc9bb92400a613b205d4dff23dd98ce2cf6d0c1c58af6a09",
  "_filesize": 3291506,
  "_sha256": "9f27b810493b6fecdc9bb92400a613b205d4dff23dd98ce2cf6d0c1c58af6a09",
  "_created": "2026-06-02T09:00:09.000Z",
  "_published": "2026-06-02T09:05:13.660Z",
  "_distro": "noble",
  "_jobs": [
    {
      "job": 79035749200,
      "time": 210,
      "config": "linux-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "7353440237"
    },
    {
      "job": 79035749187,
      "time": 152,
      "config": "linux-release-x86_64",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7353419199"
    },
    {
      "job": 79035749169,
      "time": 251,
      "config": "macos-oldrel-arm64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "7353435575"
    },
    {
      "job": 79035749210,
      "time": 186,
      "config": "macos-release-arm64",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7353420036"
    },
    {
      "job": 79035192306,
      "time": 188,
      "config": "source",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7353360876"
    },
    {
      "job": 79035749236,
      "time": 125,
      "config": "wasm-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7353409101"
    },
    {
      "job": 79035749263,
      "time": 85,
      "config": "windows-devel",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "7353394212"
    },
    {
      "job": 79035749194,
      "time": 93,
      "config": "windows-oldrel",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "7353397458"
    },
    {
      "job": 79035749250,
      "time": 89,
      "config": "windows-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7353396030"
    }
  ],
  "_buildurl": "https://github.com/r-universe/yangjasp/actions/runs/26809411005",
  "_status": "success",
  "_host": "GitHub-Actions",
  "_upstream": "https://github.com/yangjasp/optimall",
  "_commit": {
    "id": "2455cc79648ba167062acf85dd5f4898f3e397aa",
    "author": "yangjasp <jbyang@outlook.come>",
    "committer": "yangjasp <jbyang@outlook.come>",
    "message": "remove\n",
    "time": 1775254108
  },
  "_maintainer": {
    "name": "Jasper Yang",
    "email": "jbyang@uw.edu",
    "login": "yangjasp",
    "description": "",
    "uuid": 61026656
  },
  "_registered": true,
  "_dependencies": [
    {
      "package": "R",
      "version": ">= 3.5.0",
      "role": "Depends"
    },
    {
      "package": "dplyr",
      "version": ">= 1.0.5",
      "role": "Imports"
    },
    {
      "package": "glue",
      "version": ">= 1.4.0",
      "role": "Imports"
    },
    {
      "package": "magrittr",
      "version": ">= 2.0.0",
      "role": "Imports"
    },
    {
      "package": "methods",
      "version": ">= 4.0.0",
      "role": "Imports"
    },
    {
      "package": "rlang",
      "version": ">= 0.2.2",
      "role": "Imports"
    },
    {
      "package": "stats",
      "version": ">= 4.0.2",
      "role": "Imports"
    },
    {
      "package": "tibble",
      "version": ">= 1.4.2",
      "role": "Imports"
    },
    {
      "package": "utils",
      "version": ">= 3.5.0",
      "role": "Imports"
    },
    {
      "package": "bslib",
      "version": ">= 0.2.4",
      "role": "Suggests"
    },
    {
      "package": "DiagrammeR",
      "version": ">= 1.0.0",
      "role": "Suggests"
    },
    {
      "package": "DT",
      "version": ">= 0.15",
      "role": "Suggests"
    },
    {
      "package": "datasets",
      "role": "Suggests"
    },
    {
      "package": "globals",
      "version": ">= 0.12",
      "role": "Suggests"
    },
    {
      "package": "knitr",
      "version": ">= 1.28",
      "role": "Suggests"
    },
    {
      "package": "MASS",
      "version": ">= 7.1",
      "role": "Suggests"
    },
    {
      "package": "rmarkdown",
      "version": ">= 2.7",
      "role": "Suggests"
    },
    {
      "package": "shiny",
      "version": ">= 1.6.0",
      "role": "Suggests"
    },
    {
      "package": "shinytest",
      "version": ">= 1.4.0",
      "role": "Suggests"
    },
    {
      "package": "survey",
      "version": ">= 4.0",
      "role": "Suggests"
    },
    {
      "package": "tidyr",
      "version": ">= 1.3",
      "role": "Suggests"
    },
    {
      "package": "testthat",
      "version": ">= 3.0.2",
      "role": "Suggests"
    },
    {
      "package": "webshot",
      "version": ">= 0.5",
      "role": "Suggests"
    }
  ],
  "_owner": "yangjasp",
  "_selfowned": true,
  "_usedby": 0,
  "_updates": [
    {
      "week": "2025-29",
      "n": 15
    },
    {
      "week": "2025-36",
      "n": 2
    },
    {
      "week": "2025-37",
      "n": 1
    },
    {
      "week": "2026-05",
      "n": 3
    },
    {
      "week": "2026-13",
      "n": 4
    },
    {
      "week": "2026-14",
      "n": 5
    }
  ],
  "_tags": [
    {
      "name": "v1.2.0",
      "date": "2025-07-16"
    },
    {
      "name": "v1.4.0",
      "date": "2026-03-27"
    }
  ],
  "_stars": 7,
  "_contributors": [
    {
      "user": "yangjasp",
      "count": 18,
      "uuid": 61026656
    }
  ],
  "_userbio": {
    "uuid": 61026656,
    "type": "user",
    "name": "yangjasp"
  },
  "_downloads": {
    "count": 547,
    "source": "https://cranlogs.r-pkg.org/downloads/total/last-month/optimall"
  },
  "_devurl": "https://github.com/yangjasp/optimall",
  "_searchresults": 51,
  "_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/optimall.html",
    "extra/readme.html",
    "extra/readme.md",
    "manual.pdf"
  ],
  "_homeurl": "https://github.com/yangjasp/optimall",
  "_realowner": "yangjasp",
  "_cranurl": true,
  "_releases": [
    {
      "version": "0.1.0",
      "date": "2021-07-21"
    },
    {
      "version": "0.1.1",
      "date": "2022-02-09"
    },
    {
      "version": "0.1.2",
      "date": "2022-11-09"
    },
    {
      "version": "0.1.3",
      "date": "2023-09-06"
    },
    {
      "version": "0.1.4",
      "date": "2024-01-12"
    },
    {
      "version": "0.1.5",
      "date": "2024-02-15"
    },
    {
      "version": "1.1.0",
      "date": "2024-04-13"
    },
    {
      "version": "1.1.1",
      "date": "2024-06-03"
    },
    {
      "version": "1.2.0",
      "date": "2025-07-17"
    },
    {
      "version": "1.3.0",
      "date": "2025-09-08"
    },
    {
      "version": "1.3.1",
      "date": "2026-01-28"
    },
    {
      "version": "1.4.0",
      "date": "2026-04-03"
    }
  ],
  "_exports": [
    "allocate_wave",
    "apply_multiwave",
    "get_data",
    "get_data<-",
    "get_mw",
    "merge_samples",
    "merge_strata",
    "multiwave",
    "Multiwave",
    "multiwave_diagram",
    "new_multiwave",
    "optimall_shiny",
    "optimum_allocation",
    "Phase",
    "sample_strata",
    "set_mw<-",
    "shiny_server",
    "shiny_ui",
    "split_strata",
    "summary",
    "Wave"
  ],
  "_datasets": [
    {
      "name": "MatWgt_Sim",
      "title": "Example Dataset: Maternal Weights",
      "object": "MatWgt_Sim",
      "class": [
        "data.frame"
      ],
      "fields": [
        "id",
        "mat_weight_est",
        "race",
        "diabetes",
        "obesity",
        "mat_weight_true"
      ],
      "rows": 10335,
      "table": true,
      "tojson": true
    }
  ],
  "_help": [
    {
      "page": "allocate_wave",
      "title": "Adaptive Multi-Wave Sampling",
      "topics": [
        "allocate_wave"
      ]
    },
    {
      "page": "apply_multiwave",
      "title": "Apply a basic optimall function to a Multiwave Object",
      "topics": [
        "apply_multiwave",
        "apply_multiwave,Multiwave-method"
      ]
    },
    {
      "page": "get_mw",
      "title": "Access Slots of a Multiwave Object",
      "topics": [
        "get_data",
        "get_data,Multiwave-method",
        "get_data<-",
        "get_data<-,Multiwave-method",
        "get_mw",
        "get_mw,Multiwave-method"
      ]
    },
    {
      "page": "MatWgt_Sim",
      "title": "Example Dataset: Maternal Weights",
      "topics": [
        "MatWgt_Sim"
      ]
    },
    {
      "page": "merge_samples",
      "title": "Merge Sampled Data based on IDs",
      "topics": [
        "merge_samples",
        "merge_samples,Multiwave-method"
      ]
    },
    {
      "page": "merge_strata",
      "title": "Merge Strata",
      "topics": [
        "merge_strata"
      ]
    },
    {
      "page": "multiwave",
      "title": "Initialize a Multiwave Object",
      "topics": [
        "multiwave",
        "new_multiwave"
      ]
    },
    {
      "page": "multiwave_diagram",
      "title": "Print Summary Diagram of Multiwave Object",
      "topics": [
        "multiwave_diagram"
      ]
    },
    {
      "page": "Multiwave-class",
      "title": "Multiwave Class for Multi-Wave Sampling Organization",
      "topics": [
        "Multiwave",
        "Multiwave-class"
      ]
    },
    {
      "page": "optimall_shiny",
      "title": "Run the shiny application",
      "topics": [
        "optimall_shiny"
      ]
    },
    {
      "page": "optimum_allocation",
      "title": "Optimum Allocation",
      "topics": [
        "optimum_allocation"
      ]
    },
    {
      "page": "Phase-class",
      "title": "Phase Class for Multi-Wave Sampling Organization",
      "topics": [
        "Phase",
        "Phase-class"
      ]
    },
    {
      "page": "sample_strata",
      "title": "Select Sampling Units based on Stratified Random Sampling",
      "topics": [
        "sample_strata"
      ]
    },
    {
      "page": "set_mw-set",
      "title": "Write Slots of a Multiwave Object",
      "topics": [
        "set_mw<-",
        "set_mw<-,Multiwave-method"
      ]
    },
    {
      "page": "shiny_server",
      "title": "Server logic for Interactive Shiny for Optimall.",
      "topics": [
        "shiny_server"
      ]
    },
    {
      "page": "shiny_ui",
      "title": "UI for Shiny App for Splitting Strata with Optimum Allocation",
      "topics": [
        "shiny_ui"
      ]
    },
    {
      "page": "split_strata",
      "title": "Split Strata",
      "topics": [
        "split_strata"
      ]
    },
    {
      "page": "summary-Multiwave-method",
      "title": "Method for summary for class Multiwave",
      "topics": [
        "summary,Multiwave-method"
      ]
    },
    {
      "page": "Wave-class",
      "title": "Wave Class for Multi-Wave Sampling Organization",
      "topics": [
        "Wave",
        "Wave-class"
      ]
    }
  ],
  "_readme": "https://github.com/yangjasp/optimall/raw/HEAD/README.md",
  "_rundeps": [
    "cli",
    "dplyr",
    "generics",
    "glue",
    "lifecycle",
    "magrittr",
    "pillar",
    "pkgconfig",
    "R6",
    "rlang",
    "tibble",
    "tidyselect",
    "utf8",
    "vctrs",
    "withr"
  ],
  "_vignettes": [
    {
      "source": "Multiwave-Estimation.Rmd",
      "filename": "Multiwave-Estimation.html",
      "title": "Estimation in Two-phase, Multi-wave sampling",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Introduction",
        "Theoretical background",
        "Design-based estimation: IPW and Generalized Raking in a Single Phase, Wave",
        "Special considerations for Two-phase sampling",
        "Two-phase, multi-wave sampling",
        "Estimation approaches after two-phase, multi-wave sampling",
        "1. Post-stratification",
        "2. Wave-specific conditional probabilities",
        "How to implement each strategy with optimall and survey",
        "Post-stratification with raking",
        "Comparing estimation methods through simulation",
        "References",
        "Appendix"
      ],
      "created": "2024-05-26 23:10:56",
      "modified": "2026-01-28 17:57:18",
      "commits": 11
    },
    {
      "source": "Multiwave-Object.Rmd",
      "filename": "Multiwave-Object.html",
      "title": "Multiwave Object",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Overview",
        "Format",
        "Getting Started  with the Multiwave Object",
        "Access and Write slots",
        "View Summary Diagram of Survey",
        "Call optimall functions with fewer arguments",
        "Example Wave Workflow Using optimall with a Multiwave Object",
        "Conclusion"
      ],
      "created": "2021-03-23 19:30:08",
      "modified": "2025-09-05 18:42:03",
      "commits": 18
    },
    {
      "source": "using-optimall_shiny.Rmd",
      "filename": "using-optimall_shiny.html",
      "title": "Splitting Strata with Optimall Shiny",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Introduction",
        "Uploading Data",
        "Splitting Strata",
        "Output",
        "Confirming Splits",
        "Implementing Splits in R",
        "Error Messages"
      ],
      "created": "2020-11-17 19:58:01",
      "modified": "2024-06-06 17:57:23",
      "commits": 8
    },
    {
      "source": "optimall-vignette.Rmd",
      "filename": "optimall-vignette.html",
      "title": "Using Optimall",
      "author": "Jasper Yang and Pamela Shaw",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Introduction",
        "Defining and Refining Strata",
        "Optimum Allocation",
        "Selecting IDs to Sample",
        "Adaptive, Multi-Wave Sampling",
        "Examples: Using optimall to Determine Study Design and Sample Data",
        "Overview",
        "Data Set Up",
        "Example 1: Defining Sample Strata",
        "Example 2: Create an Initial Phase 2 Subsample: Phase-IIa",
        "Example 3: Optimally Allocate 2nd and 3rd Waves of Phase 2 Sample",
        "Phase-IIc",
        "Splitting Strata Efficiently with optimall_shiny()",
        "References"
      ],
      "created": "2020-11-04 19:51:06",
      "modified": "2026-03-27 21:37:53",
      "commits": 34
    }
  ],
  "_score": 6.631849462159819,
  "_indexed": true,
  "_nocasepkg": "optimall",
  "_universes": [
    "yangjasp"
  ],
  "_binaries": [
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "1.4.0",
      "date": "2026-06-02T09:03:30.000Z",
      "distro": "noble",
      "commit": "2455cc79648ba167062acf85dd5f4898f3e397aa",
      "fileid": "de4a224651270a03b9c3ba206d927b4f58dca669f6ce83aa1775c1fe09778cda",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/yangjasp/actions/runs/26809411005"
    },
    {
      "r": "4.6.0",
      "os": "linux",
      "version": "1.4.0",
      "date": "2026-06-02T09:02:35.000Z",
      "distro": "noble",
      "commit": "2455cc79648ba167062acf85dd5f4898f3e397aa",
      "fileid": "dac5829f5c6d542fb258915348c5066d9fd990c0bcf06b6ad6f8abf510d920d8",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/yangjasp/actions/runs/26809411005"
    },
    {
      "r": "4.5.3",
      "os": "mac",
      "version": "1.4.0",
      "date": "2026-06-02T09:03:21.000Z",
      "commit": "2455cc79648ba167062acf85dd5f4898f3e397aa",
      "fileid": "2bfc32de72a0f0df812acd79ff68d5278fd5db37591649defb6e2852289919a4",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/yangjasp/actions/runs/26809411005"
    },
    {
      "r": "4.6.0",
      "os": "mac",
      "version": "1.4.0",
      "date": "2026-06-02T09:02:42.000Z",
      "commit": "2455cc79648ba167062acf85dd5f4898f3e397aa",
      "fileid": "13a4fabade9e40f4244b2be574c5df2f65dbbbcc028e196da7f7cc6f737d12c1",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/yangjasp/actions/runs/26809411005"
    },
    {
      "r": "4.6.0",
      "os": "wasm",
      "version": "1.4.0",
      "date": "2026-06-02T09:02:33.000Z",
      "commit": "2455cc79648ba167062acf85dd5f4898f3e397aa",
      "fileid": "c9921b0b4cfbccdb28322d43551ff677dedef99541655d9d783a8d6d92760be8",
      "status": "success",
      "buildurl": "https://github.com/r-universe/yangjasp/actions/runs/26809411005"
    },
    {
      "r": "4.7.0",
      "os": "win",
      "version": "1.4.0",
      "date": "2026-06-02T09:01:32.000Z",
      "commit": "2455cc79648ba167062acf85dd5f4898f3e397aa",
      "fileid": "d2cff6f614da3a4917e40537915ac0b425cb8bf93d35e0cf9b9ad508c23671a4",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/yangjasp/actions/runs/26809411005"
    },
    {
      "r": "4.5.3",
      "os": "win",
      "version": "1.4.0",
      "date": "2026-06-02T09:01:29.000Z",
      "commit": "2455cc79648ba167062acf85dd5f4898f3e397aa",
      "fileid": "64db8aaf5986a8f4afd87bbade937169259e79fd7c43c7fe525cd51ae6d1b82c",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/yangjasp/actions/runs/26809411005"
    },
    {
      "r": "4.6.0",
      "os": "win",
      "version": "1.4.0",
      "date": "2026-06-02T09:01:28.000Z",
      "commit": "2455cc79648ba167062acf85dd5f4898f3e397aa",
      "fileid": "14e6e9129876da487f08bd1f3f436f48afe87f306ec11fb763cb36062147234f",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/yangjasp/actions/runs/26809411005"
    }
  ]
}