{
  "_id": "6a10226eacfb0bcc41c8cc23",
  "Package": "TidyPanel",
  "Title": "Universal Messy Panel Data Cleaner",
  "Version": "0.1.2",
  "Authors@R": "person(\"Tony\", \"Lu\", email = \"xulunt123@gmail.com\", role = c(\"aut\", \"cre\"))",
  "Description": "A robust toolkit designed to standardize and clean complex\ntabular data from commercial enterprise systems, healthcare\nrecords, logistics software, and HR databases. Now natively\nsupports Excel files, flat-file databases (CSV/TSV), and raw\ndata.frame inputs. Features include intelligent regex parsing\nfor domain-specific noise (currencies, percentages), horizontal\nside-by-side panel splitting, automated metadata key-value\nextraction from decoy rows, gap-based block clustering, and\nmessy table resolution. Methods draw on tidy data principles\ndescribed in Wickham (2014) <doi:10.18637/jss.v059.i10> and the\n'readxl' parsing infrastructure described in Wickham & Bryan\n(2023) <https://readxl.tidyverse.org>.",
  "License": "MIT + file LICENSE",
  "Encoding": "UTF-8",
  "Roxygen": "list(markdown = TRUE)",
  "RoxygenNote": "7.3.3",
  "VignetteBuilder": "knitr",
  "Config/pak/sysreqs": "libicu-dev",
  "Repository": "https://tonyisfool.r-universe.dev",
  "Date/Publication": "2026-05-13 23:41:52 UTC",
  "RemoteUrl": "https://github.com/tonyisfool/tidypanel",
  "RemoteRef": "HEAD",
  "RemoteSha": "590c19de29f041d607793765bf9718551d2a6685",
  "NeedsCompilation": "no",
  "Packaged": {
    "Date": "2026-05-14 00:13:05 UTC",
    "User": "root"
  },
  "Author": "Tony Lu [aut, cre]",
  "Maintainer": "Tony Lu <xulunt123@gmail.com>",
  "MD5sum": "d24fb9c4ee10f70145888789b13b87ba",
  "_user": "tonyisfool",
  "_type": "src",
  "_file": "TidyPanel_0.1.2.tar.gz",
  "_fileid": "8c2e71a04a1a769e45959ae10eb1b63f523f17e253b525beba52ae2846b537e9",
  "_filesize": 150848,
  "_sha256": "8c2e71a04a1a769e45959ae10eb1b63f523f17e253b525beba52ae2846b537e9",
  "_created": "2026-05-14T00:13:05.000Z",
  "_published": "2026-05-22T09:31:26.594Z",
  "_distro": "noble",
  "_jobs": [
    {
      "job": 77353147845,
      "time": 135,
      "config": "linux-devel-x86_64",
      "r": "4.7.0",
      "check": "WARNING",
      "artifact": "6984400387"
    },
    {
      "job": 77353147423,
      "time": 121,
      "config": "linux-release-x86_64",
      "r": "4.6.0",
      "check": "WARNING",
      "artifact": "6984398044"
    },
    {
      "job": 77353147498,
      "time": 108,
      "config": "macos-oldrel-arm64",
      "r": "4.5.3",
      "check": "WARNING",
      "artifact": "6987722056"
    },
    {
      "job": 77353147860,
      "time": 132,
      "config": "macos-release-arm64",
      "r": "4.6.0",
      "check": "WARNING",
      "artifact": "6984400042"
    },
    {
      "job": 77353147114,
      "time": 202,
      "config": "source",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "6984375553"
    },
    {
      "job": 77353147057,
      "time": 132,
      "config": "wasm-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7157321705"
    },
    {
      "job": 77353147808,
      "time": 83,
      "config": "windows-devel",
      "r": "4.7.0",
      "check": "WARNING",
      "artifact": "6984391602"
    },
    {
      "job": 77353147586,
      "time": 88,
      "config": "windows-oldrel",
      "r": "4.5.3",
      "check": "WARNING",
      "artifact": "6984392231"
    },
    {
      "job": 77353147628,
      "time": 109,
      "config": "windows-release",
      "r": "4.6.0",
      "check": "WARNING",
      "artifact": "6984395891"
    }
  ],
  "_buildurl": "https://github.com/r-universe/tonyisfool/actions/runs/25833752851",
  "_status": "success",
  "_host": "GitHub-Actions",
  "_upstream": "https://github.com/tonyisfool/tidypanel",
  "_commit": {
    "id": "590c19de29f041d607793765bf9718551d2a6685",
    "author": "Tony Lu <xulunt123@gmail.com>",
    "committer": "Tony Lu <xulunt123@gmail.com>",
    "message": "feat: implement horizontal panel splitting and metadata extraction for chaotic data\n",
    "time": 1778715712
  },
  "_maintainer": {
    "name": "Tony Lu",
    "email": "xulunt123@gmail.com",
    "login": "tonyisfool",
    "uuid": 280893128
  },
  "_registered": true,
  "_dependencies": [
    {
      "package": "dplyr",
      "role": "Imports"
    },
    {
      "package": "stringr",
      "role": "Imports"
    },
    {
      "package": "rlang",
      "role": "Imports"
    },
    {
      "package": "readxl",
      "role": "Imports"
    },
    {
      "package": "knitr",
      "role": "Suggests"
    },
    {
      "package": "rmarkdown",
      "role": "Suggests"
    },
    {
      "package": "testthat",
      "role": "Suggests"
    },
    {
      "package": "writexl",
      "role": "Suggests"
    }
  ],
  "_owner": "tonyisfool",
  "_selfowned": true,
  "_usedby": 0,
  "_updates": [
    {
      "week": "2026-18",
      "n": 2
    },
    {
      "week": "2026-19",
      "n": 7
    },
    {
      "week": "2026-20",
      "n": 1
    }
  ],
  "_tags": [],
  "_stars": 0,
  "_contributors": [
    {
      "user": "tonyisfool",
      "count": 10,
      "uuid": 280893128
    }
  ],
  "_userbio": {
    "uuid": 280893128,
    "type": "user",
    "name": "TonyIsFool"
  },
  "_downloads": {
    "count": 18,
    "source": "https://cranlogs.r-pkg.org/downloads/total/last-month/TidyPanel"
  },
  "_devurl": "https://github.com/tonyisfool/tidypanel",
  "_searchresults": 0,
  "_rbuild": "4.6.0",
  "_assets": [
    "extra/citation.cff",
    "extra/citation.html",
    "extra/citation.json",
    "extra/citation.txt",
    "extra/contents.json",
    "extra/readme.html",
    "extra/readme.md",
    "extra/TidyPanel.html",
    "manual.pdf"
  ],
  "_homeurl": "https://github.com/tonyisfool/tidypanel",
  "_realowner": "tonyisfool",
  "_cranurl": true,
  "_releases": [
    {
      "version": "0.1.2",
      "date": "2026-05-11"
    }
  ],
  "_exports": [
    "clean_variable_names",
    "detect_panel_structure",
    "infer_data_types",
    "normalize_units",
    "read_messy_panel",
    "validate_panel"
  ],
  "_help": [
    {
      "page": "clean_variable_names",
      "title": "Standardize and Clean Variable Names",
      "topics": [
        "clean_variable_names"
      ]
    },
    {
      "page": "detect_panel_structure",
      "title": "Diagnose the Structure of a Messy Excel Panel File",
      "topics": [
        "detect_panel_structure"
      ]
    },
    {
      "page": "infer_data_types",
      "title": "Smart Type Coercion & NA Recognition",
      "topics": [
        "infer_data_types"
      ]
    },
    {
      "page": "normalize_units",
      "title": "Normalize Numeric Columns Based on Header Unit Declarations",
      "topics": [
        "normalize_units"
      ]
    },
    {
      "page": "read_messy_panel",
      "title": "Robust Parsing and Extraction of Messy Excel Panel Data",
      "topics": [
        "read_messy_panel"
      ]
    },
    {
      "page": "validate_panel",
      "title": "Validate Data Quality of a Cleaned Panel Data Frame",
      "topics": [
        "validate_panel"
      ]
    }
  ],
  "_readme": "https://github.com/tonyisfool/tidypanel/raw/HEAD/README.md",
  "_rundeps": [
    "cellranger",
    "cli",
    "cpp11",
    "crayon",
    "dplyr",
    "generics",
    "glue",
    "hms",
    "lifecycle",
    "magrittr",
    "pillar",
    "pkgconfig",
    "prettyunits",
    "progress",
    "R6",
    "readxl",
    "rematch",
    "rlang",
    "stringi",
    "stringr",
    "tibble",
    "tidyselect",
    "utf8",
    "vctrs",
    "withr"
  ],
  "_vignettes": [
    {
      "source": "TidyPanel_introduction.Rmd",
      "filename": "TidyPanel_introduction.html",
      "title": "Introduction to TidyPanel",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Welcome to TidyPanel",
        "Features",
        "Basic Usage",
        "Cleaning Variable Names",
        "Advanced Features: Hierarchies and Audit Logs"
      ],
      "created": "2026-05-03 03:16:36",
      "modified": "2026-05-06 02:49:54",
      "commits": 2
    }
  ],
  "_score": 4.176091259055681,
  "_indexed": true,
  "_nocasepkg": "tidypanel",
  "_universes": [
    "tonyisfool"
  ],
  "_binaries": [
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "0.1.2",
      "date": "2026-05-14T00:15:20.000Z",
      "distro": "noble",
      "commit": "590c19de29f041d607793765bf9718551d2a6685",
      "fileid": "f289f002c86d3e22c1faeb70366fe38c447023bcaf996b7375c0a1a1dfab1156",
      "status": "success",
      "check": "WARNING",
      "buildurl": "https://github.com/r-universe/tonyisfool/actions/runs/25833752851"
    },
    {
      "r": "4.6.0",
      "os": "linux",
      "version": "0.1.2",
      "date": "2026-05-14T00:15:06.000Z",
      "distro": "noble",
      "commit": "590c19de29f041d607793765bf9718551d2a6685",
      "fileid": "1a7ac68843ba3497f5875373e0a530a4f04f4edd9033e38dd83cf9faaac607f4",
      "status": "success",
      "check": "WARNING",
      "buildurl": "https://github.com/r-universe/tonyisfool/actions/runs/25833752851"
    },
    {
      "r": "4.5.3",
      "os": "mac",
      "version": "0.1.2",
      "date": "2026-05-14T05:21:36.000Z",
      "commit": "590c19de29f041d607793765bf9718551d2a6685",
      "fileid": "366cf57afe751110678c37111431b4a62657999095c1c309d334326422d06be3",
      "status": "success",
      "check": "WARNING",
      "buildurl": "https://github.com/r-universe/tonyisfool/actions/runs/25833752851"
    },
    {
      "r": "4.6.0",
      "os": "mac",
      "version": "0.1.2",
      "date": "2026-05-14T00:15:10.000Z",
      "commit": "590c19de29f041d607793765bf9718551d2a6685",
      "fileid": "a9136306becae26bbffa1a103fd3fc877f29d539fda00d9f497662fe2a1ea5ca",
      "status": "success",
      "check": "WARNING",
      "buildurl": "https://github.com/r-universe/tonyisfool/actions/runs/25833752851"
    },
    {
      "r": "4.7.0",
      "os": "win",
      "version": "0.1.2",
      "date": "2026-05-14T00:14:23.000Z",
      "commit": "590c19de29f041d607793765bf9718551d2a6685",
      "fileid": "2281f8e5ecbe1d79f6376f3236c54b25384df8426e5078eb570e12102625dacc",
      "status": "success",
      "check": "WARNING",
      "buildurl": "https://github.com/r-universe/tonyisfool/actions/runs/25833752851"
    },
    {
      "r": "4.5.3",
      "os": "win",
      "version": "0.1.2",
      "date": "2026-05-14T00:14:16.000Z",
      "commit": "590c19de29f041d607793765bf9718551d2a6685",
      "fileid": "2309cf979da5c1c7310a9f8aa9be27b43ceea5edeb325c4a7965fdbad7907c25",
      "status": "success",
      "check": "WARNING",
      "buildurl": "https://github.com/r-universe/tonyisfool/actions/runs/25833752851"
    },
    {
      "r": "4.6.0",
      "os": "win",
      "version": "0.1.2",
      "date": "2026-05-14T00:14:47.000Z",
      "commit": "590c19de29f041d607793765bf9718551d2a6685",
      "fileid": "91f2d56e8f94c4803b49986920b356875feaa247193c28236af9a2db823c684a",
      "status": "success",
      "check": "WARNING",
      "buildurl": "https://github.com/r-universe/tonyisfool/actions/runs/25833752851"
    },
    {
      "r": "4.6.0",
      "os": "wasm",
      "version": "0.1.2",
      "date": "2026-05-22T09:31:03.000Z",
      "commit": "590c19de29f041d607793765bf9718551d2a6685",
      "fileid": "4af01d380d37ae58b8c228f07c9fef28850e2a2a4ecc6a04d54cadae398536c4",
      "status": "success",
      "buildurl": "https://github.com/r-universe/tonyisfool/actions/runs/25833752851"
    }
  ]
}