{
  "_id": "6abf930299f7aa8c6aa59000",
  "Package": "dataprep",
  "Type": "Package",
  "Title": "Fast, Efficient, and Versatile Data Preprocessing and Reshaping\nwith 'C++', 'OpenMP' & 'SIMD'",
  "Version": "0.1.8",
  "Authors@R": "c(\nperson(\"Chun-Sheng\", \"Liang\", role = c(\"aut\", \"cre\"),\nemail = \"chun-shengliang@qq.com\",\ncomment = c(ORCID = \"0000-0002-7386-1958\")),\nperson(\"Hao\", \"Wu\", role = \"aut\"),\nperson(\"Hai-Yan\", \"Li\", role = \"aut\"),\nperson(\"Qiang\", \"Zhang\", role = \"aut\"),\nperson(\"Zhanqing\", \"Li\", role = \"aut\"),\nperson(\"Ke-Bin\", \"He\", role = \"aut\")\n)",
  "Description": "Fast, efficient, and versatile preprocessing and reshaping\nof tabular and time-series data. Most heavy routines are\nimplemented in 'C++' via 'Rcpp', with optional 'OpenMP'\nparallelization and 'SIMD' acceleration ('AVX2' / 'AVX-512') on\nsupported hardware. The 0.1.8 release rewrites the cleaning\nroutines in 'C++' and delivers a 1.1–1146× speedup over 0.1.5.\nThe 'melt()' and 'dcast()' reshaping functions achieve a\n0.6×–1628.9× speedup for 'melt()' and a 1.9×–799.8× speedup for\n'dcast()' relative to every one of the seven major alternatives\nin the R and Python ecosystems, at every tested scale (from\n1,000 to 100,000,000 rows), and produce output identical to\n'reshape2', 'data.table', 'tidyr', 'pandas', 'polars', 'dask',\nand 'duckdb'. Core preprocessing steps include variable\ndeletion by missing fraction, observation deletion by\nconsecutive missing runs, point-by-point weighted outlier\nremoval via conditional extremum, traditional percentile-based\noutlier removal, and linear interpolation within short time\nperiods. The package also provides fast reshaping, descriptive\nstatistics, missing-value diagnosis, multiple imputation\nstrategies, winsorization, several outlier detection methods\n(IQR, MAD, percentile), data transformation and\nstandardization, categorical encoding, duplicate removal, data\nvalidation, data quality reporting, and stratified sampling.\nFeature-engineering helpers cover binning, high-correlation and\nlow-variance filtering, and string cleaning. Time-series tools\ncover detrending, diurnal-cycle removal, rolling statistics,\nlag creation, resampling, simple decomposition, day/night and\nseason flags, log returns, drift detection, and panel\nbalancing. Fit/transform-style machine-learning interfaces\nprevent data leakage during preprocessing. Methods are based\non, and improved from: Liang, C.-S., Wu, H., Li, H.-Y., Zhang,\nQ., Li, Z. & He, K.-B. (2020)\n<doi:10.1016/j.scitotenv.2020.140923>. This work was supported\nby the National Natural Science Foundation of China (No.\n12301674).",
  "ByteCompile": "TRUE",
  "VignetteBuilder": "knitr, rmarkdown",
  "SystemRequirements": "C++17, optional OpenMP",
  "License": "GPL (>= 2)",
  "Encoding": "UTF-8",
  "NeedsCompilation": "yes",
  "URL": "https://github.com/chunshengliang/dataprep,\nhttps://chunshengliang.github.io/dataprep/",
  "BugReports": "https://github.com/chunshengliang/dataprep/issues",
  "Config/testthat/edition": "3",
  "LazyData": "true",
  "Config/roxygen2/version": "8.1.0",
  "Repository": "https://chunshengliang.r-universe.dev",
  "Date/Publication": "2026-10-01 09:46:00 UTC",
  "RemoteUrl": "https://github.com/chunshengliang/dataprep",
  "RemoteRef": "HEAD",
  "RemoteSha": "a38d35d1ae567dec2b795a76e3532d64370fb665",
  "Packaged": {
    "Date": "2026-10-02 11:09:53 UTC",
    "User": "root"
  },
  "Author": "Chun-Sheng Liang [aut, cre] (ORCID:\n<https://orcid.org/0000-0002-7386-1958>),\nHao Wu [aut],\nHai-Yan Li [aut],\nQiang Zhang [aut],\nZhanqing Li [aut],\nKe-Bin He [aut]",
  "Maintainer": "Chun-Sheng Liang <chun-shengliang@qq.com>",
  "_user": "chunshengliang",
  "_type": "src",
  "_file": "dataprep_0.1.8.tar.gz",
  "_fileid": "https://r2.ropensci.org/ee7a2adb30f6f65d263805821fbaade76cb5a773e2afeff38e4ef707692b0a56",
  "_filesize": 8186203,
  "_sha256": "ee7a2adb30f6f65d263805821fbaade76cb5a773e2afeff38e4ef707692b0a56",
  "_expires": "2027-01-10T11:18:23.000Z",
  "_created": "2026-10-02T11:09:53.000Z",
  "_published": "2026-10-02T11:18:26.370Z",
  "_jobs": [
    {
      "job": 110813971014,
      "time": 214,
      "config": "linux-devel-arm64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "11223355785"
    },
    {
      "job": 110813971024,
      "time": 183,
      "config": "linux-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "11223870170"
    },
    {
      "job": 110813971005,
      "time": 182,
      "config": "linux-release-arm64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "11223087516"
    },
    {
      "job": 110813971086,
      "time": 219,
      "config": "linux-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "11222714925"
    },
    {
      "job": 110813971224,
      "time": 241,
      "config": "macos-oldrel-arm64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "11223137197"
    },
    {
      "job": 110813971028,
      "time": 397,
      "config": "macos-oldrel-x86_64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "11222998783"
    },
    {
      "job": 110813971020,
      "time": 195,
      "config": "macos-release-arm64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "11223470601"
    },
    {
      "job": 110813971092,
      "time": 305,
      "config": "macos-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "11223550689"
    },
    {
      "job": 110812179326,
      "time": 365,
      "config": "source",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "11222962809"
    },
    {
      "job": 110813971001,
      "time": 172,
      "config": "wasm-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "11222903676"
    },
    {
      "job": 110813971041,
      "time": 429,
      "config": "windows-devel-arm64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "11223242121"
    },
    {
      "job": 110813971157,
      "time": 258,
      "config": "windows-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "11222858950"
    },
    {
      "job": 110813971070,
      "time": 273,
      "config": "windows-oldrel-x86_64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "11223720879"
    },
    {
      "job": 110813971093,
      "time": 416,
      "config": "windows-release-arm64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "11222949099"
    },
    {
      "job": 110813971071,
      "time": 196,
      "config": "windows-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "11223900121"
    }
  ],
  "_host": "GitHub-Actions",
  "_buildurl": "https://github.com/r-universe/chunshengliang/actions/runs/36998998748",
  "_status": "success",
  "_upstream": "https://github.com/chunshengliang/dataprep",
  "_commit": {
    "id": "a38d35d1ae567dec2b795a76e3532d64370fb665",
    "author": "Chun-Sheng Liang <chun-shengliang@qq.com>",
    "committer": "Chun-Sheng Liang <chun-shengliang@qq.com>",
    "message": "chore: bump to 0.1.8, address CRAN pretest feedback\n\n- DESCRIPTION: single-quote software names in Title and Description\n  ('C++', 'OpenMP', 'SIMD', 'AVX2', 'AVX-512'); bump version to 0.1.8\n- src/dcast.cpp: drop unused g_have_avx2\n- src/filter_high_cor_cpp.cpp: drop dead si accumulator\n- src/melt.cpp: drop unused fill_i32_helper family; wrap\n  get_thread_cap in #ifdef _OPENMP\n- Propagate 0.1.7 -> 0.1.8 across README, NEWS, vignettes,\n  man pages, CITATION, cran-comments\n- inst/WORDLIST: add technical terms flagged by spell_check\n",
    "time": 1790847960
  },
  "_maintainer": {
    "name": "Chun-Sheng Liang",
    "email": "chun-shengliang@qq.com",
    "login": "chunshengliang",
    "description": "",
    "uuid": 242186618,
    "orcid": "0000-0002-7386-1958"
  },
  "_distro": "resolute",
  "_registered": true,
  "_dependencies": [
    {
      "package": "R",
      "version": ">= 4.0.0",
      "role": "Depends"
    },
    {
      "package": "Rcpp",
      "version": ">= 1.0.10",
      "role": "LinkingTo"
    },
    {
      "package": "Rcpp",
      "version": ">= 1.0.10",
      "role": "Imports"
    },
    {
      "package": "ggplot2",
      "role": "Imports"
    },
    {
      "package": "stats",
      "role": "Imports"
    },
    {
      "package": "parallel",
      "role": "Imports"
    },
    {
      "package": "knitr",
      "role": "Suggests"
    },
    {
      "package": "rmarkdown",
      "role": "Suggests"
    },
    {
      "package": "testthat",
      "version": ">= 3.0.0",
      "role": "Suggests"
    },
    {
      "package": "data.table",
      "role": "Suggests"
    },
    {
      "package": "reshape2",
      "role": "Suggests"
    },
    {
      "package": "tidyr",
      "role": "Suggests"
    },
    {
      "package": "dplyr",
      "role": "Suggests"
    },
    {
      "package": "microbenchmark",
      "role": "Suggests"
    },
    {
      "package": "reticulate",
      "role": "Suggests"
    }
  ],
  "_owner": "chunshengliang",
  "_selfowned": true,
  "_usedby": 0,
  "_updates": [
    {
      "week": "2026-39",
      "n": 13
    },
    {
      "week": "2026-40",
      "n": 41
    }
  ],
  "_tags": [
    {
      "name": "v0.1.6",
      "date": "2026-09-11"
    }
  ],
  "_topics": [
    "accuracy",
    "completeness",
    "conditional-extremum",
    "data-filtering",
    "data-reshaping",
    "efficient",
    "fast",
    "interpolation",
    "long-to-wide",
    "missing-value-imputation",
    "missing-values",
    "observations",
    "outlier-detection",
    "outlier-removal",
    "point-by-point-consideration",
    "short-time-interval-grouping",
    "time-intervals",
    "variables",
    "versatile",
    "wide-to-long",
    "cpp",
    "openmp"
  ],
  "_stars": 1,
  "_contributors": [
    {
      "user": "chunshengliang",
      "count": 54,
      "uuid": 242186618
    }
  ],
  "_userbio": {
    "uuid": 242186618,
    "type": "user",
    "name": "Chun-Sheng Liang",
    "followers": 0
  },
  "_downloads": {
    "count": 401,
    "source": "https://cranlogs.r-pkg.org/downloads/total/last-month/dataprep"
  },
  "_devurl": "https://github.com/chunshengliang/dataprep",
  "_pkgdown": "https://chunshengliang.github.io/dataprep/",
  "_searchresults": 8,
  "_rbuild": "4.6.1",
  "_assets": [
    "extra/citation.cff",
    "extra/citation.html",
    "extra/citation.json",
    "extra/citation.txt",
    "extra/contents.json",
    "extra/dataprep.html",
    "extra/manual.pdf",
    "extra/NEWS.html",
    "extra/NEWS.txt",
    "extra/readme.html",
    "extra/readme.md"
  ],
  "_homeurl": "https://github.com/chunshengliang/dataprep",
  "_realowner": "chunshengliang",
  "_cranurl": true,
  "_releases": [
    {
      "version": "0.1.0",
      "date": "2021-01-11"
    },
    {
      "version": "0.1.1",
      "date": "2021-04-04"
    },
    {
      "version": "0.1.2",
      "date": "2021-05-25"
    },
    {
      "version": "0.1.3",
      "date": "2021-05-28"
    },
    {
      "version": "0.1.4",
      "date": "2021-07-04"
    },
    {
      "version": "0.1.5",
      "date": "2022-01-15"
    },
    {
      "version": "0.1.8",
      "date": "2026-10-01"
    }
  ],
  "_exports": [
    "balance_panel",
    "bin_data",
    "clean_strings",
    "condextr",
    "create_lags",
    "data_report",
    "dataprep",
    "day_night_flag",
    "dcast",
    "decompose_ts",
    "deduplicate",
    "descdata",
    "descplot",
    "detect_outliers",
    "detrend_ts",
    "drift_detect",
    "dry_run",
    "encode_categorical",
    "filter_high_cor",
    "filter_low_var",
    "impute_missing",
    "log_returns",
    "melt",
    "na_diagnose",
    "obsedele",
    "optisolu",
    "percdata",
    "percoutl",
    "percplot",
    "phys_filter",
    "prep_fit",
    "prep_transform",
    "remove_diurnal_cycle",
    "resample_time",
    "roll_apply",
    "sample_data",
    "season_flag",
    "shorvalu",
    "transform_data",
    "validate_data",
    "varidele",
    "winsorize",
    "zerona"
  ],
  "_datasets": [
    {
      "name": "data",
      "title": "Example data (particle number concentrations in SMEAR I Varrio forest)",
      "object": "data",
      "class": [
        "data.frame"
      ],
      "fields": [
        "date",
        "tconc",
        "TPNC",
        "monthyear",
        "1",
        "1.12",
        "1.26",
        "1.41",
        "1.58",
        "1.78",
        "2",
        "2.24",
        "2.51",
        "2.82",
        "3.16",
        "3.55",
        "3.98",
        "4.47",
        "5.01",
        "5.62",
        "6.31",
        "7.08",
        "7.94",
        "8.91",
        "10",
        "11.2",
        "12.6",
        "14.1",
        "15.8",
        "17.8",
        "20",
        "22.4",
        "25.1",
        "28.2",
        "31.6",
        "35.5",
        "39.8",
        "44.7",
        "50.1",
        "56.2",
        "63.1",
        "70.8",
        "79.4",
        "89.1",
        "100",
        "112",
        "126",
        "141",
        "158",
        "178",
        "200",
        "224",
        "251",
        "282",
        "316",
        "355",
        "398",
        "447",
        "501",
        "562",
        "631",
        "708",
        "794",
        "891",
        "1000"
      ],
      "rows": 7640,
      "table": true,
      "tojson": true
    },
    {
      "name": "data1",
      "title": "Example data (aggregated particle number concentrations, SMEAR I Varrio forest)",
      "object": "data1",
      "class": [
        "data.frame"
      ],
      "fields": [
        "date",
        "monthyear",
        "Nucleation",
        "Aitken",
        "Accumulation",
        "tconc",
        "TPNC"
      ],
      "rows": 7640,
      "table": true,
      "tojson": true
    }
  ],
  "_help": [
    {
      "page": "dataprep-package",
      "title": "dataprep: Fast, Efficient, and Versatile Data Preprocessing and Reshaping with 'C++', 'OpenMP' & 'SIMD'",
      "topics": [
        "dataprep-package"
      ]
    },
    {
      "page": "balance_panel",
      "title": "Balance panel data",
      "topics": [
        "balance_panel"
      ]
    },
    {
      "page": "bin_data",
      "title": "Discretize continuous variables into bins",
      "topics": [
        "bin_data"
      ]
    },
    {
      "page": "clean_strings",
      "title": "Clean and standardize character columns",
      "topics": [
        "clean_strings"
      ]
    },
    {
      "page": "condextr",
      "title": "Remove outliers using point-by-point weighed outlier removal by conditional extremum",
      "topics": [
        "condextr"
      ]
    },
    {
      "page": "create_lags",
      "title": "Create lagged variables",
      "topics": [
        "create_lags"
      ]
    },
    {
      "page": "data",
      "title": "Example data (particle number concentrations in SMEAR I Varrio forest)",
      "topics": [
        "data"
      ]
    },
    {
      "page": "data_report",
      "title": "Generate a simple data quality report",
      "topics": [
        "data_report"
      ]
    },
    {
      "page": "data1",
      "title": "Example data (aggregated particle number concentrations, SMEAR I Varrio forest)",
      "topics": [
        "data1"
      ]
    },
    {
      "page": "dataprep",
      "title": "Data preprocessing with multiple steps in one function",
      "topics": [
        "dataprep"
      ]
    },
    {
      "page": "day_night_flag",
      "title": "Day/night flag",
      "topics": [
        "day_night_flag"
      ]
    },
    {
      "page": "dcast",
      "title": "Cast a long-format data.frame into a wide format",
      "topics": [
        "dcast"
      ]
    },
    {
      "page": "decompose_ts",
      "title": "Simple time series decomposition",
      "topics": [
        "decompose_ts"
      ]
    },
    {
      "page": "deduplicate",
      "title": "Remove duplicate observations",
      "topics": [
        "deduplicate"
      ]
    },
    {
      "page": "descdata",
      "title": "Fast descriptive statistics",
      "topics": [
        "descdata"
      ]
    },
    {
      "page": "descplot",
      "title": "View descriptive statistics via plot",
      "topics": [
        "descplot"
      ]
    },
    {
      "page": "detect_outliers",
      "title": "Detect outliers using multiple methods",
      "topics": [
        "detect_outliers"
      ]
    },
    {
      "page": "detrend_ts",
      "title": "Remove linear trend from time series",
      "topics": [
        "detrend_ts"
      ]
    },
    {
      "page": "drift_detect",
      "title": "Sensor drift detection",
      "topics": [
        "drift_detect"
      ]
    },
    {
      "page": "dry_run",
      "title": "Simulate preprocessing and report changes without modifying data",
      "topics": [
        "dry_run"
      ]
    },
    {
      "page": "encode_categorical",
      "title": "Encode categorical variables",
      "topics": [
        "encode_categorical"
      ]
    },
    {
      "page": "filter_high_cor",
      "title": "Remove highly correlated variables",
      "topics": [
        "filter_high_cor"
      ]
    },
    {
      "page": "filter_low_var",
      "title": "Remove low-variance (near-constant) variables",
      "topics": [
        "filter_low_var"
      ]
    },
    {
      "page": "impute_missing",
      "title": "Impute missing values",
      "topics": [
        "impute_missing"
      ]
    },
    {
      "page": "log_returns",
      "title": "Logarithmic returns for financial time series",
      "topics": [
        "log_returns"
      ]
    },
    {
      "page": "melt",
      "title": "Fast wide-to-long data reshaping with flexible ID/measure specification",
      "topics": [
        "melt"
      ]
    },
    {
      "page": "na_diagnose",
      "title": "Diagnose missing value patterns in data",
      "topics": [
        "na_diagnose"
      ]
    },
    {
      "page": "obsedele",
      "title": "Delete observations with excessive consecutive missing values",
      "topics": [
        "obsedele"
      ]
    },
    {
      "page": "optisolu",
      "title": "Find optimal combination of interval and times for condextr",
      "topics": [
        "optisolu"
      ]
    },
    {
      "page": "percdata",
      "title": "Calculate top and bottom percentiles of selected variables",
      "topics": [
        "percdata"
      ]
    },
    {
      "page": "percoutl",
      "title": "Traditional percentile-based outlier removal",
      "topics": [
        "percoutl"
      ]
    },
    {
      "page": "percplot",
      "title": "Plot top and bottom percentiles of selected variables",
      "topics": [
        "percplot"
      ]
    },
    {
      "page": "phys_filter",
      "title": "Physical limit filtering",
      "topics": [
        "phys_filter"
      ]
    },
    {
      "page": "prep_fit",
      "title": "Build a preprocessing plan on training data to prevent data leakage",
      "topics": [
        "prep_fit"
      ]
    },
    {
      "page": "prep_transform",
      "title": "Apply a preprocessing plan to new data",
      "topics": [
        "prep_transform"
      ]
    },
    {
      "page": "remove_diurnal_cycle",
      "title": "Remove diurnal cycle",
      "topics": [
        "remove_diurnal_cycle"
      ]
    },
    {
      "page": "resample_time",
      "title": "Resample time series to a coarser period",
      "topics": [
        "resample_time"
      ]
    },
    {
      "page": "roll_apply",
      "title": "Apply rolling window statistics",
      "topics": [
        "roll_apply"
      ]
    },
    {
      "page": "sample_data",
      "title": "Random sampling with optional stratification",
      "topics": [
        "sample_data"
      ]
    },
    {
      "page": "season_flag",
      "title": "Season flag",
      "topics": [
        "season_flag"
      ]
    },
    {
      "page": "shorvalu",
      "title": "Interpolation with values to refer to within short periods",
      "topics": [
        "shorvalu"
      ]
    },
    {
      "page": "transform_data",
      "title": "Transform and standardize numeric variables",
      "topics": [
        "transform_data"
      ]
    },
    {
      "page": "validate_data",
      "title": "Validate data against a set of rules",
      "topics": [
        "validate_data"
      ]
    },
    {
      "page": "varidele",
      "title": "Delete variables containing too many missing values",
      "topics": [
        "varidele"
      ]
    },
    {
      "page": "winsorize",
      "title": "Winsorize outliers by capping extreme values",
      "topics": [
        "winsorize"
      ]
    },
    {
      "page": "zerona",
      "title": "Turn zeros to missing values",
      "topics": [
        "zerona"
      ]
    }
  ],
  "_pkglogo": "https://github.com/chunshengliang/dataprep/raw/HEAD/man/figures/logo.png",
  "_readme": "https://github.com/chunshengliang/dataprep/raw/HEAD/README.md",
  "_rundeps": [
    "cli",
    "cpp11",
    "farver",
    "ggplot2",
    "glue",
    "gtable",
    "isoband",
    "labeling",
    "lifecycle",
    "R6",
    "RColorBrewer",
    "Rcpp",
    "rlang",
    "S7",
    "scales",
    "vctrs",
    "viridisLite",
    "withr"
  ],
  "_sysdeps": [
    {
      "shlib": "libstdc++",
      "package": "libstdc++6",
      "source": "gcc",
      "version": "16-20260322-1ubuntu1",
      "name": "c++",
      "homepage": "http://gcc.gnu.org/",
      "description": "GNU Standard C++ Library v3"
    },
    {
      "shlib": "libgomp",
      "package": "libgomp1",
      "source": "gcc",
      "version": "16-20260322-1ubuntu1",
      "name": "openmp",
      "homepage": "http://gcc.gnu.org/",
      "description": "GCC OpenMP (GOMP) support library"
    }
  ],
  "_vignettes": [
    {
      "source": "dataprep-workflow.Rmd",
      "filename": "dataprep-workflow.html",
      "title": "dataprep: a leakage-free preprocessing workflow",
      "engine": "knitr::rmarkdown",
      "headings": [
        "The data-leakage problem",
        "A minimal example",
        "What is stored in the plan",
        "A note on degenerate columns",
        "Adding or removing steps",
        "Column-order independence",
        "Missing-column detection",
        "Workflow with dataprep()",
        "Reporting",
        "Full applied workflow",
        "When NOT to preprocess",
        "Test environment",
        "Where to go next",
        "Session info"
      ],
      "created": "2026-09-26 17:01:22",
      "modified": "2026-10-01 09:46:00",
      "commits": 7
    },
    {
      "source": "dataprep-cleaning.Rmd",
      "filename": "dataprep-cleaning.html",
      "title": "dataprep: cleaning pipeline",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Quick start",
        "Overview",
        "Why obsedele changed in 0.1.8",
        "Boundary behaviour",
        "condextr vs percoutl",
        "Why obsedele is re-applied after condextr",
        "Step-by-step walkthrough",
        "Step 1 — Variable deletion",
        "Step 2 — Observation deletion",
        "Before cleaning",
        "Step 3 — Conditional extremum outlier removal",
        "After cleaning",
        "Step 4 — Short-period interpolation",
        "One-call pipeline: dataprep()",
        "Inspecting the plan without running it",
        "Missing-value diagnostics",
        "Additional cleaning helpers",
        "When NOT to preprocess",
        "Where to go next",
        "Session info"
      ],
      "created": "2026-09-26 17:01:22",
      "modified": "2026-10-01 09:46:00",
      "commits": 9
    },
    {
      "source": "dataprep-plots.Rmd",
      "filename": "dataprep-plots.html",
      "title": "dataprep: descriptive statistics and diagnostic plots",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Overview",
        "Descriptive statistics",
        "Line plot, numeric variable names",
        "Selected statistics",
        "Bar chart, character variable names",
        "Control facet layout",
        "Full-size data",
        "The underlying table",
        "Percentile plots",
        "Full percentile range",
        "Top percentiles only",
        "Bottom percentiles only",
        "Percentile curves of the raw data",
        "Numeric axis control",
        "Combining with ggplot2",
        "A diagnostic workflow",
        "Where to go next",
        "Session info"
      ],
      "created": "2026-09-26 17:01:22",
      "modified": "2026-10-01 09:46:00",
      "commits": 10
    },
    {
      "source": "dataprep-philosophy.Rmd",
      "filename": "dataprep-philosophy.html",
      "title": "dataprep: design philosophy and preprocessing methodology",
      "engine": "knitr::rmarkdown",
      "headings": [
        "The problem this package solves",
        "The four-step pipeline",
        "Variable deletion: three principles",
        "1. Signal-to-noise ratio as the primary threshold",
        "2. Physical relevance",
        "3. Missing-run length, not just missing fraction",
        "Observation deletion: two principles",
        "1. Detect the pattern, don't filter the points",
        "2. The half-hour window is the physical mixing time",
        "How it is implemented: anchor-based scan",
        "Implementation evolution",
        "Why \"both sides\" and not \"one side\"?",
        "Subsets: group and period",
        "Re-applied after outlier deletion",
        "Outlier removal: two principles",
        "1. Per-point decisions, not one-shot thresholds",
        "2. Outlier deletion inherits the gap-length constraint",
        "Missing-value interpolation: two principles",
        "1. Vertical, not horizontal",
        "2. Segment the series before interpolating",
        "Why this order, and not any other",
        "Evaluation metrics",
        "Number of values deleted",
        "Sample retention",
        "Residual outliers",
        "Newly created outliers",
        "Uncertainty analysis",
        "The package beyond the four steps",
        "Related documentation",
        "Funding",
        "Session info"
      ],
      "created": "2026-09-26 17:01:22",
      "modified": "2026-10-01 09:46:00",
      "commits": 5
    },
    {
      "source": "dataprep-melt-dcast.Rmd",
      "filename": "dataprep-melt-dcast.html",
      "title": "dataprep: fast reshaping with melt() and dcast()",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Why another reshape implementation",
        "Test environment",
        "Wide to long with melt()",
        "Basic usage",
        "Measure-side specification",
        "Automatic ID inference",
        "Custom column names and na.rm",
        "Memory layout: major = \"row\" vs major = \"col\"",
        "Thread control",
        "Why melt() is fast",
        "1. Two layout paths, selected by major",
        "2. SIMD streaming stores",
        "3. Hugepage hint for large outputs",
        "4. Fast paths for small inputs",
        "5. Cache-aware block sizing",
        "6. Per-call caches for SEXP and factor levels",
        "Long to wide with dcast()",
        "Formula interface",
        "Fill missing cells",
        "Aggregating duplicate pairs",
        "na.rm",
        "Why dcast() is fast",
        "1. Block-path detection (Phase 0a–0c)",
        "2. 64-bit packed keys and 96-bit fingerprint fallback",
        "3. Radix sort for shuffle-friendly input",
        "4. Permutation shortcut",
        "Where the gap is narrowest",
        "Cross-engine consistency",
        "melt consistency",
        "dcast consistency",
        "Round-trip example",
        "Headline numbers",
        "Ubuntu 25.10",
        "Windows 11 Pro for Workstations",
        "Session info"
      ],
      "created": "2026-09-26 17:01:22",
      "modified": "2026-10-01 09:46:00",
      "commits": 11
    },
    {
      "source": "dataprep-performance.Rmd",
      "filename": "dataprep-performance.html",
      "title": "dataprep: performance and cross-engine consistency",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Overview",
        "Mean vs median",
        "Test environment",
        "How to read these numbers",
        "Cleaning pipeline (dataprep 0.1.5 → 0.1.8)",
        "melt() — wide to long",
        "Vary rows, 1 id + 9 value columns",
        "Vary rows, 10 id (5 int + 5 chr)",
        "Vary value columns, 1e3 rows, 1 id",
        "Vary value columns, 1e3 rows, 10 id",
        "melt() on Windows 11 Pro for Workstations",
        "dcast() — long to wide",
        "Vary n_long, 1 id, 10 levels",
        "Vary levels, 1 id, 1e6 rows",
        "Vary n_long, 1 id, 100 levels",
        "Vary n_id, 1e6 rows, 10 levels",
        "dcast() on Windows 11 Pro for Workstations",
        "Summary of speedups",
        "Ubuntu 25.10",
        "Windows 11 Pro for Workstations",
        "Cross-engine consistency",
        "melt consistency",
        "dcast consistency",
        "Reproducing the benchmarks",
        "Session info"
      ],
      "created": "2026-09-26 17:01:22",
      "modified": "2026-10-01 09:46:00",
      "commits": 13
    },
    {
      "source": "dataprep-migration.Rmd",
      "filename": "dataprep-migration.html",
      "title": "dataprep: upgrading from 0.1.5 to 0.1.8",
      "engine": "knitr::rmarkdown",
      "headings": [
        "What changed",
        "Interface changes",
        "Minimal reproduction of the boundary change",
        "Minimal reproduction of the multi-column change",
        "Implementation evolution",
        "Quantified effect on a full-year dataset",
        "Where the difference comes from",
        "Migration checklist",
        "What did not change",
        "Performance reference",
        "Test environments",
        "Where to go next",
        "Session info"
      ],
      "created": "2026-09-26 17:01:22",
      "modified": "2026-10-01 09:46:00",
      "commits": 10
    }
  ],
  "_score": 4.845098040014257,
  "_indexed": true,
  "_nocasepkg": "dataprep",
  "_universes": [
    "chunshengliang"
  ],
  "_binaries": [
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "0.1.8",
      "date": "2026-10-02T11:13:26.000Z",
      "distro": "resolute",
      "arch": "aarch64",
      "commit": "a38d35d1ae567dec2b795a76e3532d64370fb665",
      "fileid": "https://r2.ropensci.org/b1703957e10e9b3187ff1a46817f2960aecb247de29b27f6f49560beda9ff38c",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/chunshengliang/actions/runs/36998998748"
    },
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "0.1.8",
      "date": "2026-10-02T11:12:59.000Z",
      "distro": "resolute",
      "arch": "x86_64",
      "commit": "a38d35d1ae567dec2b795a76e3532d64370fb665",
      "fileid": "https://r2.ropensci.org/e353881e95c559bc89bbf97654d6fe8d4c4fa9a6382c74699d81bf6cbfc75947",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/chunshengliang/actions/runs/36998998748"
    },
    {
      "r": "4.6.1",
      "os": "linux",
      "version": "0.1.8",
      "date": "2026-10-02T11:12:59.000Z",
      "distro": "resolute",
      "arch": "aarch64",
      "commit": "a38d35d1ae567dec2b795a76e3532d64370fb665",
      "fileid": "https://r2.ropensci.org/fc7b9c4d8899e180ee8c1f5f8fb15e7de5a6e6344980b07dfe9a774bc1882924",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/chunshengliang/actions/runs/36998998748"
    },
    {
      "r": "4.6.1",
      "os": "linux",
      "version": "0.1.8",
      "date": "2026-10-02T11:13:35.000Z",
      "distro": "resolute",
      "arch": "x86_64",
      "commit": "a38d35d1ae567dec2b795a76e3532d64370fb665",
      "fileid": "https://r2.ropensci.org/690542523f4333c481c07e370b9efe466c55cc9c395e9ee998f37b247b3011f8",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/chunshengliang/actions/runs/36998998748"
    },
    {
      "r": "4.5.3",
      "os": "mac",
      "version": "0.1.8",
      "date": "2026-10-02T11:13:14.000Z",
      "arch": "aarch64",
      "commit": "a38d35d1ae567dec2b795a76e3532d64370fb665",
      "fileid": "https://r2.ropensci.org/9fac43751d7a7727fce329e7c96d4b543cbd7bf8c85b463bc67cf200ceb968a7",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/chunshengliang/actions/runs/36998998748"
    },
    {
      "r": "4.5.3",
      "os": "mac",
      "version": "0.1.8",
      "date": "2026-10-02T11:14:33.000Z",
      "arch": "x86_64",
      "commit": "a38d35d1ae567dec2b795a76e3532d64370fb665",
      "fileid": "https://r2.ropensci.org/740ff6d61764c31d06df8640383b3df265e5fc7c307c3d41b042bd3cf99d9f6e",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/chunshengliang/actions/runs/36998998748"
    },
    {
      "r": "4.6.1",
      "os": "mac",
      "version": "0.1.8",
      "date": "2026-10-02T11:12:42.000Z",
      "arch": "aarch64",
      "commit": "a38d35d1ae567dec2b795a76e3532d64370fb665",
      "fileid": "https://r2.ropensci.org/3133de1265df6f4025a1c4c3fbe7564a492872d08cbcbedc252c67a885fae062",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/chunshengliang/actions/runs/36998998748"
    },
    {
      "r": "4.6.1",
      "os": "mac",
      "version": "0.1.8",
      "date": "2026-10-02T11:13:38.000Z",
      "arch": "x86_64",
      "commit": "a38d35d1ae567dec2b795a76e3532d64370fb665",
      "fileid": "https://r2.ropensci.org/abd7aaf35a4f031491a4456f271c4baf7d168ba16d89355daba06c3b9d9c749b",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/chunshengliang/actions/runs/36998998748"
    },
    {
      "r": "4.6.0",
      "os": "wasm",
      "version": "0.1.8",
      "date": "2026-10-02T11:13:07.000Z",
      "arch": "emscripten",
      "commit": "a38d35d1ae567dec2b795a76e3532d64370fb665",
      "fileid": "https://r2.ropensci.org/046d44bf6b85a370736be994bc49c773642b1cd68a120ce2db3d87ce4d7da9bc",
      "status": "success",
      "buildurl": "https://github.com/r-universe/chunshengliang/actions/runs/36998998748"
    },
    {
      "r": "4.7.0",
      "os": "win",
      "version": "0.1.8",
      "date": "2026-10-02T11:15:43.000Z",
      "arch": "aarch64",
      "commit": "a38d35d1ae567dec2b795a76e3532d64370fb665",
      "fileid": "https://r2.ropensci.org/f99cdee5fb5fe700d19a5247569b4ee85c114d32eb04e34c6eeaa755ab06b7a2",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/chunshengliang/actions/runs/36998998748"
    },
    {
      "r": "4.7.0",
      "os": "win",
      "version": "0.1.8",
      "date": "2026-10-02T11:12:32.000Z",
      "arch": "x86_64",
      "commit": "a38d35d1ae567dec2b795a76e3532d64370fb665",
      "fileid": "https://r2.ropensci.org/48a9551d1798d64d499df09ca7d0f3f1c64531fda7c0632eb30584d8f5c23087",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/chunshengliang/actions/runs/36998998748"
    },
    {
      "r": "4.5.3",
      "os": "win",
      "version": "0.1.8",
      "date": "2026-10-02T11:13:28.000Z",
      "arch": "x86_64",
      "commit": "a38d35d1ae567dec2b795a76e3532d64370fb665",
      "fileid": "https://r2.ropensci.org/211084cf610a230ff44b5d8e19638da9eb4f7642a17176758dee42001cb9395f",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/chunshengliang/actions/runs/36998998748"
    },
    {
      "r": "4.6.1",
      "os": "win",
      "version": "0.1.8",
      "date": "2026-10-02T11:15:33.000Z",
      "arch": "aarch64",
      "commit": "a38d35d1ae567dec2b795a76e3532d64370fb665",
      "fileid": "https://r2.ropensci.org/bc23722e35b9c028dddde8f6ba7c05dca250fee39a300c77dc33756d579bb778",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/chunshengliang/actions/runs/36998998748"
    },
    {
      "r": "4.6.1",
      "os": "win",
      "version": "0.1.8",
      "date": "2026-10-02T11:11:59.000Z",
      "arch": "x86_64",
      "commit": "a38d35d1ae567dec2b795a76e3532d64370fb665",
      "fileid": "https://r2.ropensci.org/42a45c7995bdc2fd046baed4a9d9b7cd2fc9819207399f970be1c430f1b7b3f6",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/chunshengliang/actions/runs/36998998748"
    }
  ]
}