{
  "_id": "6a61577df673e46fff56ae3c",
  "Package": "dataganger",
  "Title": "Synthetic Data Doubles for Safer Prototyping",
  "Version": "0.7.0",
  "Authors@R": "person(\"Lennon\", \"Li\",\nemail = \"yeli@biostats.ai\",\nrole = c(\"aut\", \"cre\"))",
  "Author": "Lennon Li [aut, cre]",
  "Maintainer": "Lennon Li <yeli@biostats.ai>",
  "Description": "Creates synthetic data doubles from real datasets for\nprototyping, teaching, 'shiny' development, and AI-assisted\nprogramming. Provides data profiling, role detection,\nconfigurable synthesis, utility comparison, and disclosure-risk\nwarnings. Synthetic outputs are intended to reduce direct\ndisclosure risk, not to guarantee privacy.",
  "License": "MIT + file LICENSE",
  "Encoding": "UTF-8",
  "Language": "en-US",
  "Roxygen": "list(markdown = TRUE)",
  "Config/testthat/edition": "3",
  "URL": "https://dataganger.biostats.ai/,\nhttps://github.com/lennon-li/dataganger",
  "BugReports": "https://github.com/lennon-li/dataganger/issues",
  "Config/roxygen2/version": "8.0.0",
  "RoxygenNote": "8.0.0",
  "LazyData": "true",
  "VignetteBuilder": "knitr",
  "Config/pak/sysreqs": "make libx11-dev zlib1g-dev",
  "Repository": "https://lennon-li.r-universe.dev",
  "Date/Publication": "2026-07-22 23:26:04 UTC",
  "RemoteUrl": "https://github.com/lennon-li/dataganger",
  "RemoteRef": "HEAD",
  "RemoteSha": "e6bd4126386bae2125382b23e53eff6223ff97a7",
  "NeedsCompilation": "no",
  "Packaged": {
    "Date": "2026-07-22 23:44:56 UTC",
    "User": "root"
  },
  "_user": "lennon-li",
  "_type": "src",
  "_file": "dataganger_0.7.0.tar.gz",
  "_fileid": "https://r2.ropensci.org/2342b3e61cac77af5bfd2226c34faccd530f25bf4ef790fb28c528eb6e9980af",
  "_filesize": 2321612,
  "_sha256": "2342b3e61cac77af5bfd2226c34faccd530f25bf4ef790fb28c528eb6e9980af",
  "_expires": "2026-10-30T23:51:23.000Z",
  "_created": "2026-07-22T23:44:56.000Z",
  "_published": "2026-07-22T23:51:25.694Z",
  "_jobs": [
    {
      "job": 89080827208,
      "time": 299,
      "config": "linux-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "8548314745"
    },
    {
      "job": 89080827196,
      "time": 279,
      "config": "linux-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "8548308941"
    },
    {
      "job": 89080827214,
      "time": 152,
      "config": "macos-oldrel-arm64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "8548271987"
    },
    {
      "job": 89080827179,
      "time": 209,
      "config": "macos-release-arm64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "8548288362"
    },
    {
      "job": 89080159154,
      "time": 268,
      "config": "source",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "8548226945"
    },
    {
      "job": 89080827165,
      "time": 162,
      "config": "wasm-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "8548274543"
    },
    {
      "job": 89080827242,
      "time": 248,
      "config": "windows-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "8548300136"
    },
    {
      "job": 89080827215,
      "time": 226,
      "config": "windows-oldrel-x86_64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "8548293882"
    },
    {
      "job": 89080827241,
      "time": 341,
      "config": "windows-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "8548327945"
    }
  ],
  "_host": "GitHub-Actions",
  "_buildurl": "https://github.com/r-universe/lennon-li/actions/runs/29966842241",
  "_status": "success",
  "_upstream": "https://github.com/lennon-li/dataganger",
  "_commit": {
    "id": "e6bd4126386bae2125382b23e53eff6223ff97a7",
    "author": "Ye (Lennon) Li <85519713+lennon-li@users.noreply.github.com>",
    "committer": "GitHub <noreply@github.com>",
    "message": "Merge pull request #44 from lennon-li/fix/column-filter-load-on-continue\n\nColumn-filter load-on-Continue, ID-scramble hardening, exact-match highlight",
    "time": 1784762764
  },
  "_maintainer": {
    "name": "Lennon Li",
    "email": "yeli@biostats.ai"
  },
  "_distro": "resolute",
  "_registered": true,
  "_dependencies": [
    {
      "package": "R",
      "version": ">= 4.1.0",
      "role": "Depends"
    },
    {
      "package": "cli",
      "role": "Imports"
    },
    {
      "package": "digest",
      "role": "Imports"
    },
    {
      "package": "dplyr",
      "role": "Imports"
    },
    {
      "package": "haven",
      "role": "Imports"
    },
    {
      "package": "jsonlite",
      "role": "Imports"
    },
    {
      "package": "readr",
      "role": "Imports"
    },
    {
      "package": "readxl",
      "role": "Imports"
    },
    {
      "package": "rlang",
      "role": "Imports"
    },
    {
      "package": "stats",
      "role": "Imports"
    },
    {
      "package": "tibble",
      "role": "Imports"
    },
    {
      "package": "utils",
      "role": "Imports"
    },
    {
      "package": "withr",
      "role": "Imports"
    },
    {
      "package": "yaml",
      "role": "Imports"
    },
    {
      "package": "zip",
      "role": "Imports"
    },
    {
      "package": "bslib",
      "role": "Suggests"
    },
    {
      "package": "callr",
      "role": "Suggests"
    },
    {
      "package": "DT",
      "role": "Suggests"
    },
    {
      "package": "ggplot2",
      "role": "Suggests"
    },
    {
      "package": "knitr",
      "role": "Suggests"
    },
    {
      "package": "nnet",
      "role": "Suggests"
    },
    {
      "package": "pkgdown",
      "role": "Suggests"
    },
    {
      "package": "plotly",
      "role": "Suggests"
    },
    {
      "package": "rmarkdown",
      "role": "Suggests"
    },
    {
      "package": "shiny",
      "role": "Suggests"
    },
    {
      "package": "shinytest2",
      "role": "Suggests"
    },
    {
      "package": "spelling",
      "role": "Suggests"
    },
    {
      "package": "synthpop",
      "role": "Suggests"
    },
    {
      "package": "testthat",
      "version": ">= 3.0.0",
      "role": "Suggests"
    }
  ],
  "_owner": "lennon-li",
  "_selfowned": true,
  "_usedby": 0,
  "_updates": [
    {
      "week": "2026-20",
      "n": 7
    },
    {
      "week": "2026-21",
      "n": 3
    },
    {
      "week": "2026-22",
      "n": 17
    },
    {
      "week": "2026-23",
      "n": 5
    },
    {
      "week": "2026-24",
      "n": 1
    },
    {
      "week": "2026-25",
      "n": 51
    },
    {
      "week": "2026-26",
      "n": 24
    },
    {
      "week": "2026-27",
      "n": 14
    },
    {
      "week": "2026-28",
      "n": 6
    },
    {
      "week": "2026-30",
      "n": 3
    }
  ],
  "_tags": [],
  "_stars": 0,
  "_contributors": [
    {
      "user": "lennon-li",
      "count": 85,
      "uuid": 85519713
    },
    {
      "user": "claude",
      "count": 14,
      "uuid": 81847
    },
    {
      "user": "copilot",
      "count": 2,
      "uuid": 198982749
    }
  ],
  "_userbio": {
    "uuid": 85519713,
    "type": "user",
    "name": "Ye (Lennon) Li",
    "followers": 2
  },
  "_downloads": {
    "count": 0,
    "source": "https://cranlogs.r-pkg.org/downloads/total/last-month/dataganger"
  },
  "_devurl": "https://github.com/lennon-li/dataganger",
  "_pkgdown": "https://dataganger.biostats.ai/",
  "_rbuild": "4.6.1",
  "_assets": [
    "extra/citation.cff",
    "extra/citation.html",
    "extra/citation.json",
    "extra/citation.txt",
    "extra/contents.json",
    "extra/dataganger.html",
    "extra/NEWS.html",
    "extra/NEWS.txt",
    "extra/readme.html",
    "extra/readme.md",
    "LICENSE",
    "manual.pdf"
  ],
  "_homeurl": "https://github.com/lennon-li/dataganger",
  "_realowner": "lennon-li",
  "_cranurl": true,
  "_releases": [
    {
      "version": "0.6.1",
      "date": "2026-07-21"
    }
  ],
  "_exports": [
    "assess_kanonymity",
    "check_code_readiness",
    "compare_synthetic",
    "dataganger_cli",
    "detect_roles",
    "enforce_kanon",
    "export_diagnostic_package",
    "export_synthetic",
    "looks_aggregated",
    "make_agent_bundle",
    "plot_comparison",
    "privacy_check",
    "profile_data",
    "read_input",
    "report_issue",
    "run_app",
    "suggest_min_rows",
    "synth_spec",
    "synthesize_data"
  ],
  "_datasets": [
    {
      "name": "example_admin_claims",
      "title": "Example administrative claims dataset",
      "object": "example_admin_claims",
      "class": [
        "tbl_df",
        "tbl",
        "data.frame"
      ],
      "fields": [
        "claim_id",
        "patient_id",
        "service_date",
        "dx_code",
        "proc_code",
        "cost",
        "approved",
        "provider_city",
        "postal_code"
      ],
      "rows": 300,
      "table": true,
      "tojson": true
    },
    {
      "name": "example_health_survey",
      "title": "Example health survey dataset",
      "object": "example_health_survey",
      "class": [
        "tbl_df",
        "tbl",
        "data.frame"
      ],
      "fields": [
        "record_id",
        "age",
        "sex",
        "bmi",
        "smoking_status",
        "systolic_bp",
        "diastolic_bp",
        "survey_date",
        "province",
        "comments"
      ],
      "rows": 200,
      "table": true,
      "tojson": true
    },
    {
      "name": "example_registry",
      "title": "Example disease registry dataset",
      "object": "example_registry",
      "class": [
        "tbl_df",
        "tbl",
        "data.frame"
      ],
      "fields": [
        "subject_id",
        "enroll_date",
        "age_at_enroll",
        "disease_stage",
        "biomarker_a",
        "biomarker_b",
        "status",
        "last_visit",
        "region",
        "notes"
      ],
      "rows": 150,
      "table": true,
      "tojson": true
    },
    {
      "name": "geographic_sample",
      "title": "Geographic synthetic sample data",
      "object": "geographic_sample",
      "class": [
        "data.frame"
      ],
      "fields": [
        "region",
        "population",
        "rate_per_100k",
        "category",
        "risk_level"
      ],
      "rows": 50,
      "table": true,
      "tojson": true
    },
    {
      "name": "individual_sample",
      "title": "Individual-level synthetic sample data",
      "object": "individual_sample",
      "class": [
        "data.frame"
      ],
      "fields": [
        "id",
        "age",
        "sex",
        "income",
        "education",
        "smoker",
        "bmi"
      ],
      "rows": 200,
      "table": true,
      "tojson": true
    },
    {
      "name": "temporal_sample",
      "title": "Temporal synthetic sample data",
      "object": "temporal_sample",
      "class": [
        "data.frame"
      ],
      "fields": [
        "date",
        "site_id",
        "measurement",
        "temperature",
        "flagged"
      ],
      "rows": 365,
      "table": true,
      "tojson": true
    }
  ],
  "_help": [
    {
      "page": "assess_kanonymity",
      "title": "Assess k-anonymity over a set of quasi-identifier columns",
      "topics": [
        "assess_kanonymity"
      ]
    },
    {
      "page": "check_code_readiness",
      "title": "Check whether synthetic data is code-compatible with the original",
      "topics": [
        "check_code_readiness"
      ]
    },
    {
      "page": "compare_synthetic",
      "title": "Compare original and synthetic datasets",
      "topics": [
        "compare_synthetic"
      ]
    },
    {
      "page": "dataganger_cli",
      "title": "DataGangeR command-line interface",
      "topics": [
        "dataganger_cli"
      ]
    },
    {
      "page": "detect_roles",
      "title": "Detect data roles for each column",
      "topics": [
        "detect_roles"
      ]
    },
    {
      "page": "enforce_kanon",
      "title": "Enforce k-anonymity on a synthetic dataset (output guarantee)",
      "topics": [
        "enforce_kanon"
      ]
    },
    {
      "page": "example_admin_claims",
      "title": "Example administrative claims dataset",
      "topics": [
        "example_admin_claims"
      ]
    },
    {
      "page": "example_health_survey",
      "title": "Example health survey dataset",
      "topics": [
        "example_health_survey"
      ]
    },
    {
      "page": "example_registry",
      "title": "Example disease registry dataset",
      "topics": [
        "example_registry"
      ]
    },
    {
      "page": "export_diagnostic_package",
      "title": "Export a Lens-compatible diagnostic schema for a dataset",
      "topics": [
        "export_diagnostic_package"
      ]
    },
    {
      "page": "export_synthetic",
      "title": "Export a synthetic data bundle",
      "topics": [
        "export_synthetic"
      ]
    },
    {
      "page": "geographic_sample",
      "title": "Geographic synthetic sample data",
      "topics": [
        "geographic_sample"
      ]
    },
    {
      "page": "individual_sample",
      "title": "Individual-level synthetic sample data",
      "topics": [
        "individual_sample"
      ]
    },
    {
      "page": "looks_aggregated",
      "title": "Heuristic: does this data frame look pre-aggregated (a table of counts)?",
      "topics": [
        "looks_aggregated"
      ]
    },
    {
      "page": "make_agent_bundle",
      "title": "Create a one-command agent-ready bundle from a raw data file",
      "topics": [
        "make_agent_bundle"
      ]
    },
    {
      "page": "plot_comparison",
      "title": "Plot comparison summaries",
      "topics": [
        "plot_comparison"
      ]
    },
    {
      "page": "privacy_check",
      "title": "Run disclosure-risk privacy checks",
      "topics": [
        "privacy_check"
      ]
    },
    {
      "page": "profile_data",
      "title": "Profile a dataset column-by-column",
      "topics": [
        "profile_data"
      ]
    },
    {
      "page": "read_input",
      "title": "Read a data file into a tibble",
      "topics": [
        "read_input"
      ]
    },
    {
      "page": "report_issue",
      "title": "Report a problem or share feedback",
      "topics": [
        "report_issue"
      ]
    },
    {
      "page": "run_app",
      "title": "Launch the DataGangeR Shiny Application",
      "topics": [
        "run_app"
      ]
    },
    {
      "page": "suggest_min_rows",
      "title": "Suggest a sufficient synthetic row count",
      "topics": [
        "suggest_min_rows"
      ]
    },
    {
      "page": "synth_spec",
      "title": "Create a synthesis specification",
      "topics": [
        "synth_spec"
      ]
    },
    {
      "page": "synthesize_data",
      "title": "Synthesize a data double",
      "topics": [
        "synthesize_data"
      ]
    },
    {
      "page": "temporal_sample",
      "title": "Temporal synthetic sample data",
      "topics": [
        "temporal_sample"
      ]
    }
  ],
  "_pkglogo": "https://github.com/lennon-li/dataganger/raw/HEAD/man/figures/logo.png",
  "_readme": "https://github.com/lennon-li/dataganger/raw/HEAD/README.md",
  "_rundeps": [
    "bit",
    "bit64",
    "cellranger",
    "cli",
    "clipr",
    "cpp11",
    "crayon",
    "digest",
    "dplyr",
    "forcats",
    "generics",
    "glue",
    "haven",
    "hms",
    "jsonlite",
    "lifecycle",
    "magrittr",
    "pillar",
    "pkgconfig",
    "prettyunits",
    "progress",
    "R6",
    "readr",
    "readxl",
    "rematch",
    "rlang",
    "tibble",
    "tidyselect",
    "tzdb",
    "utf8",
    "vctrs",
    "vroom",
    "withr",
    "yaml",
    "zip"
  ],
  "_vignettes": [
    {
      "source": "privacy-and-ai-workflow.Rmd",
      "filename": "privacy-and-ai-workflow.html",
      "title": "Privacy gating and Agent workflows",
      "engine": "knitr::rmarkdown",
      "headings": [
        "The promise",
        "The privacy gating ladder",
        "1. Entry attestation: direct identifiers",
        "2. Upload",
        "3. Early soft fail-safe",
        "4. Objective",
        "5. Configure: two questions per column",
        "6. Synthesis enforcement",
        "7. Compare plus privacy report",
        "8. Export",
        "What the two questions reinforce",
        "Short glossary",
        "Worked k-anonymity examples from the built-in samples",
        "individual_sample (200 x 7)",
        "temporal_sample (365 x 5)",
        "geographic_sample (50 x 5)",
        "Two ways to use it with AI",
        "Path A: hand off the synthetic bundle",
        "Path B: save the recipe and let the AI reproduce",
        "The no-network guarantee",
        "Lock 1: no network code",
        "Lock 2: nothing is persisted",
        "How it is proven",
        "Verify it yourself offline",
        "Supply-chain note"
      ],
      "created": "2026-06-30 00:38:10",
      "modified": "2026-07-10 21:55:12",
      "commits": 6
    }
  ],
  "_score": 5,
  "_indexed": true,
  "_nocasepkg": "dataganger",
  "_universes": [
    "lennon-li"
  ],
  "_binaries": [
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "0.7.0",
      "date": "2026-07-22T23:48:37.000Z",
      "distro": "resolute",
      "commit": "e6bd4126386bae2125382b23e53eff6223ff97a7",
      "fileid": "https://r2.ropensci.org/9c1afcf7f5f6776fb6abedbc733fb26a661fdcc55de47b931930525814175327",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/lennon-li/actions/runs/29966842241"
    },
    {
      "r": "4.6.1",
      "os": "linux",
      "version": "0.7.0",
      "date": "2026-07-22T23:48:16.000Z",
      "distro": "resolute",
      "commit": "e6bd4126386bae2125382b23e53eff6223ff97a7",
      "fileid": "https://r2.ropensci.org/5d2f7d28c3d368ed6ff48189abcd096050d83e91fa5123a47980cb0b79cd52ca",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/lennon-li/actions/runs/29966842241"
    },
    {
      "r": "4.5.3",
      "os": "mac",
      "version": "0.7.0",
      "date": "2026-07-22T23:46:44.000Z",
      "commit": "e6bd4126386bae2125382b23e53eff6223ff97a7",
      "fileid": "https://r2.ropensci.org/9f771629bb89d8b58bde781e9900cbd8ee4f4bb80b2379bb6b2552849bcd6057",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/lennon-li/actions/runs/29966842241"
    },
    {
      "r": "4.6.1",
      "os": "mac",
      "version": "0.7.0",
      "date": "2026-07-22T23:47:09.000Z",
      "commit": "e6bd4126386bae2125382b23e53eff6223ff97a7",
      "fileid": "https://r2.ropensci.org/10a9252a3879023a97b47cabaacfaa2b9a442237e5b06bd9cc1d7105268d314a",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/lennon-li/actions/runs/29966842241"
    },
    {
      "r": "4.6.0",
      "os": "wasm",
      "version": "0.7.0",
      "date": "2026-07-22T23:48:00.000Z",
      "commit": "e6bd4126386bae2125382b23e53eff6223ff97a7",
      "fileid": "https://r2.ropensci.org/e9462c7ad9799ec29eefbaf8683e664f428a7f9b07f33c4022b8721ec2c5ce89",
      "status": "success",
      "buildurl": "https://github.com/r-universe/lennon-li/actions/runs/29966842241"
    },
    {
      "r": "4.7.0",
      "os": "win",
      "version": "0.7.0",
      "date": "2026-07-22T23:47:44.000Z",
      "commit": "e6bd4126386bae2125382b23e53eff6223ff97a7",
      "fileid": "https://r2.ropensci.org/f6f90942c1926dccfaf7d101918a82a45fcc35ab9cb2e19b5af955c33fabb83b",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/lennon-li/actions/runs/29966842241"
    },
    {
      "r": "4.5.3",
      "os": "win",
      "version": "0.7.0",
      "date": "2026-07-22T23:46:48.000Z",
      "commit": "e6bd4126386bae2125382b23e53eff6223ff97a7",
      "fileid": "https://r2.ropensci.org/92b2855ad393222cc20da0888ffcd141a87885b153e0c6ea36635c0666589d1e",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/lennon-li/actions/runs/29966842241"
    },
    {
      "r": "4.6.1",
      "os": "win",
      "version": "0.7.0",
      "date": "2026-07-22T23:48:17.000Z",
      "commit": "e6bd4126386bae2125382b23e53eff6223ff97a7",
      "fileid": "https://r2.ropensci.org/54eb60139b2e7e2e2137e2baa5553c4c84c02265d6514f2413f371060ab8a8a3",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/lennon-li/actions/runs/29966842241"
    }
  ]
}