{
  "_id": "6ad80d17d556c3a3418a7cef",
  "Package": "bkbase",
  "Title": "Package Utility Functions",
  "Version": "0.0.1",
  "Authors@R": "c(\nperson(\"Brett\", \"Klamer\", email = \"code@brettklamer.com\", role = c(\"aut\", \"cre\"))\n)",
  "Description": "A collection of package utility functions written in\n'base' R.",
  "URL": "https://brettklamer.com/work/bkbase,\nhttps://bitbucket.org/bklamer/bkbase",
  "License": "MIT + file LICENSE",
  "Roxygen": "list(markdown = TRUE)",
  "Encoding": "UTF-8",
  "Config/roxygen2/version": "8.1.1",
  "Repository": "https://bklamer.r-universe.dev",
  "Date/Publication": "2026-10-20 23:01:58 UTC",
  "RemoteUrl": "https://bitbucket.org/bklamer/bkbase",
  "RemoteRef": "HEAD",
  "RemoteSha": "bf25ef8ca696998697f883e9be436c01c7b62934",
  "NeedsCompilation": "no",
  "Packaged": {
    "Date": "2026-10-21 00:51:13 UTC",
    "User": "root"
  },
  "Author": "Brett Klamer [aut, cre]",
  "Maintainer": "Brett Klamer <code@brettklamer.com>",
  "_user": "bklamer",
  "_type": "src",
  "_file": "bkbase_0.0.1.tar.gz",
  "_fileid": "https://r2.ropensci.org/98e7dc6fc3151f422e27cecce9c20679aef1ec2da5d4564000cea1d288873286",
  "_filesize": 436853,
  "_sha256": "98e7dc6fc3151f422e27cecce9c20679aef1ec2da5d4564000cea1d288873286",
  "_expires": "2027-01-29T00:53:40.000Z",
  "_created": "2026-10-21T00:51:13.000Z",
  "_published": "2026-10-21T00:53:42.684Z",
  "_buildurl": "https://github.com/r-universe/bklamer/actions/runs/39523551192",
  "_status": "success",
  "_host": "GitHub-Actions",
  "_jobs": [
    {
      "job": 118973777253,
      "time": 90,
      "config": "linux-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "12311823839"
    },
    {
      "job": 118973777283,
      "time": 95,
      "config": "linux-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "12311778607"
    },
    {
      "job": 118973777267,
      "time": 84,
      "config": "macos-oldrel-arm64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "12312573074"
    },
    {
      "job": 118973777293,
      "time": 107,
      "config": "macos-release-arm64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "12312563183"
    },
    {
      "job": 118972924396,
      "time": 157,
      "config": "source",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "12312582823"
    },
    {
      "job": 118973777397,
      "time": 81,
      "config": "wasm-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "12312418144"
    },
    {
      "job": 118973777280,
      "time": 67,
      "config": "windows-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "12311338604"
    },
    {
      "job": 118973777262,
      "time": 72,
      "config": "windows-oldrel-x86_64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "12311733789"
    },
    {
      "job": 118973777419,
      "time": 77,
      "config": "windows-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "12312558072"
    }
  ],
  "_upstream": "https://bitbucket.org/bklamer/bkbase",
  "_commit": {
    "id": "bf25ef8ca696998697f883e9be436c01c7b62934",
    "author": "Brett Klamer <code@brettklamer.com>",
    "committer": "Brett Klamer <code@brettklamer.com>",
    "message": "Packagewide doc standardization, remove fouter(), update code\n",
    "time": 1792537318
  },
  "_maintainer": {
    "name": "Brett Klamer",
    "email": "code@brettklamer.com",
    "login": "bklamer",
    "description": "I don't use github for personal projects.",
    "uuid": 8397446
  },
  "_distro": "resolute",
  "_registered": true,
  "_dependencies": [
    {
      "package": "R",
      "version": ">= 4.5.0",
      "role": "Depends"
    },
    {
      "package": "tinytest",
      "role": "Suggests"
    }
  ],
  "_owner": "bitbucket-bklamer",
  "_selfowned": true,
  "_usedby": 0,
  "_updates": [
    {
      "week": "2025-49",
      "n": 8
    },
    {
      "week": "2025-50",
      "n": 7
    },
    {
      "week": "2025-51",
      "n": 4
    },
    {
      "week": "2026-01",
      "n": 4
    },
    {
      "week": "2026-02",
      "n": 3
    },
    {
      "week": "2026-03",
      "n": 7
    },
    {
      "week": "2026-04",
      "n": 2
    },
    {
      "week": "2026-18",
      "n": 4
    },
    {
      "week": "2026-19",
      "n": 8
    },
    {
      "week": "2026-20",
      "n": 20
    },
    {
      "week": "2026-21",
      "n": 12
    },
    {
      "week": "2026-22",
      "n": 18
    },
    {
      "week": "2026-23",
      "n": 1
    },
    {
      "week": "2026-24",
      "n": 1
    },
    {
      "week": "2026-25",
      "n": 1
    },
    {
      "week": "2026-42",
      "n": 2
    },
    {
      "week": "2026-43",
      "n": 3
    }
  ],
  "_tags": [],
  "_userbio": {
    "uuid": 8397446,
    "type": "user",
    "name": "Brett Klamer",
    "followers": 4,
    "description": "I don't use github for personal projects."
  },
  "_downloads": {
    "count": 0,
    "source": "https://cranlogs.r-pkg.org/downloads/total/last-month/bkbase"
  },
  "_devurl": "https://bitbucket.org/bklamer/bkbase",
  "_searchresults": 1,
  "_rbuild": "4.6.1",
  "_assets": [
    "extra/bkbase.html",
    "extra/citation.cff",
    "extra/citation.html",
    "extra/citation.json",
    "extra/citation.txt",
    "extra/contents.json",
    "extra/manual.pdf",
    "extra/NEWS.html",
    "extra/NEWS.txt",
    "extra/readme.html",
    "extra/readme.md",
    "LICENSE"
  ],
  "_cranurl": false,
  "_exports": [
    "%==%",
    "%in2%",
    "all2",
    "and",
    "any2",
    "as_na",
    "csw",
    "dots",
    "dots_char",
    "fdeparse",
    "fformula",
    "fmean",
    "fmedian",
    "fncol",
    "fnrow",
    "format_value",
    "fsd",
    "fstr_wrap",
    "fstrwrap",
    "ftabulate",
    "fvar",
    "glue2",
    "is_atomic",
    "is_const",
    "is_date",
    "is_date_or_datetime",
    "is_datetime",
    "is_factor",
    "is_formula",
    "is_monotonic_decreasing",
    "is_monotonic_increasing",
    "is_probability",
    "is_scalar_character",
    "is_scalar_date",
    "is_scalar_date_or_datetime",
    "is_scalar_datetime",
    "is_scalar_double",
    "is_scalar_factor",
    "is_scalar_integer",
    "is_scalar_logical",
    "is_scalar_numeric",
    "is_scalar_probability",
    "is_scalar_whole_number",
    "is_scalar_whole_numeric",
    "is_strict_decreasing",
    "is_strict_increasing",
    "is_string",
    "is_whole_number",
    "is_whole_numeric",
    "list_clean",
    "list_flatten2",
    "logical_to_integer",
    "match.arg2",
    "match.call2",
    "middle",
    "or",
    "quiet",
    "remove_rownames",
    "resample",
    "reset_rownames",
    "rle2",
    "rm_na",
    "rmna",
    "round2",
    "rowCumsums",
    "rowMaxs",
    "rowMaxs2",
    "rowMeans2",
    "rowSums2",
    "seq2",
    "str_trim2"
  ],
  "_help": [
    {
      "page": "grapes-equals-grapes",
      "title": "Equality operator that is NA-aware",
      "topics": [
        "%==%"
      ]
    },
    {
      "page": "grapes-in2-grapes",
      "title": "Value matching that propagates NA",
      "topics": [
        "%in2%"
      ]
    },
    {
      "page": "all2",
      "title": "Are all values TRUE",
      "topics": [
        "all2"
      ]
    },
    {
      "page": "and",
      "title": "Logical AND with NA tolerance",
      "topics": [
        "and"
      ]
    },
    {
      "page": "any2",
      "title": "Are any nonmissing values TRUE",
      "topics": [
        "any2"
      ]
    },
    {
      "page": "as_na",
      "title": "Coerce to NA",
      "topics": [
        "as_na"
      ]
    },
    {
      "page": "csw",
      "title": "Comma-separated words",
      "topics": [
        "csw"
      ]
    },
    {
      "page": "dots",
      "title": "Capture unevaluated dots",
      "topics": [
        "dots",
        "dots_char"
      ]
    },
    {
      "page": "fdeparse",
      "title": "Fast deparse",
      "topics": [
        "fdeparse"
      ]
    },
    {
      "page": "fformula",
      "title": "Fast formula",
      "topics": [
        "fformula"
      ]
    },
    {
      "page": "fmean",
      "title": "Fast mean",
      "topics": [
        "fmean"
      ]
    },
    {
      "page": "fmedian",
      "title": "Fast median",
      "topics": [
        "fmedian"
      ]
    },
    {
      "page": "fncol",
      "title": "Fast number of columns in a data frame",
      "topics": [
        "fncol"
      ]
    },
    {
      "page": "fnrow",
      "title": "Fast number of rows in a data frame",
      "topics": [
        "fnrow"
      ]
    },
    {
      "page": "format_value",
      "title": "Argument value as a phrase for a message",
      "topics": [
        "format_value"
      ]
    },
    {
      "page": "fsd",
      "title": "Fast standard deviation",
      "topics": [
        "fsd"
      ]
    },
    {
      "page": "fstr_wrap",
      "title": "Fast string wrapping",
      "topics": [
        "fstrwrap",
        "fstr_wrap"
      ]
    },
    {
      "page": "ftabulate",
      "title": "Fast tabulate",
      "topics": [
        "ftabulate"
      ]
    },
    {
      "page": "fvar",
      "title": "Fast variance",
      "topics": [
        "fvar"
      ]
    },
    {
      "page": "glue2",
      "title": "String interpolation",
      "topics": [
        "glue2"
      ]
    },
    {
      "page": "is_atomic",
      "title": "Is object an atomic vector",
      "topics": [
        "is_atomic"
      ]
    },
    {
      "page": "is_const",
      "title": "Is vector constant",
      "topics": [
        "is_const"
      ]
    },
    {
      "page": "is_date",
      "title": "Is object class date",
      "topics": [
        "is_date"
      ]
    },
    {
      "page": "is_date_or_datetime",
      "title": "Is object class date or datetime",
      "topics": [
        "is_date_or_datetime"
      ]
    },
    {
      "page": "is_datetime",
      "title": "Is object class datetime",
      "topics": [
        "is_datetime"
      ]
    },
    {
      "page": "is_factor",
      "title": "Is object a factor vector",
      "topics": [
        "is_factor"
      ]
    },
    {
      "page": "is_formula",
      "title": "Is object a formula",
      "topics": [
        "is_formula"
      ]
    },
    {
      "page": "is_monotonic_decreasing",
      "title": "Is vector monotonically decreasing",
      "topics": [
        "is_monotonic_decreasing"
      ]
    },
    {
      "page": "is_monotonic_increasing",
      "title": "Is vector monotonically increasing",
      "topics": [
        "is_monotonic_increasing"
      ]
    },
    {
      "page": "is_probability",
      "title": "Is object a vector of probabilities",
      "topics": [
        "is_probability"
      ]
    },
    {
      "page": "is_scalar_character",
      "title": "Is object a scalar character vector",
      "topics": [
        "is_scalar_character"
      ]
    },
    {
      "page": "is_scalar_date",
      "title": "Is object a scalar date",
      "topics": [
        "is_scalar_date"
      ]
    },
    {
      "page": "is_scalar_date_or_datetime",
      "title": "Is object a scalar date or datetime",
      "topics": [
        "is_scalar_date_or_datetime"
      ]
    },
    {
      "page": "is_scalar_datetime",
      "title": "Is object a scalar datetime",
      "topics": [
        "is_scalar_datetime"
      ]
    },
    {
      "page": "is_scalar_double",
      "title": "Is object a scalar double-precision vector",
      "topics": [
        "is_scalar_double"
      ]
    },
    {
      "page": "is_scalar_factor",
      "title": "Is object a scalar factor vector",
      "topics": [
        "is_scalar_factor"
      ]
    },
    {
      "page": "is_scalar_integer",
      "title": "Is object a scalar integer vector",
      "topics": [
        "is_scalar_integer"
      ]
    },
    {
      "page": "is_scalar_logical",
      "title": "Is object a scalar logical vector",
      "topics": [
        "is_scalar_logical"
      ]
    },
    {
      "page": "is_scalar_numeric",
      "title": "Is object a scalar numeric vector",
      "topics": [
        "is_scalar_numeric"
      ]
    },
    {
      "page": "is_scalar_probability",
      "title": "Is object a scalar probability",
      "topics": [
        "is_scalar_probability"
      ]
    },
    {
      "page": "is_scalar_whole_number",
      "title": "Is object a scalar whole number",
      "topics": [
        "is_scalar_whole_number"
      ]
    },
    {
      "page": "is_scalar_whole_numeric",
      "title": "Is object a scalar whole numeric",
      "topics": [
        "is_scalar_whole_numeric"
      ]
    },
    {
      "page": "is_strict_decreasing",
      "title": "Is vector strictly decreasing",
      "topics": [
        "is_strict_decreasing"
      ]
    },
    {
      "page": "is_strict_increasing",
      "title": "Is vector strictly increasing",
      "topics": [
        "is_strict_increasing"
      ]
    },
    {
      "page": "is_string",
      "title": "Is object a string",
      "topics": [
        "is_string"
      ]
    },
    {
      "page": "is_whole_number",
      "title": "Is object a vector of whole numbers",
      "topics": [
        "is_whole_number"
      ]
    },
    {
      "page": "is_whole_numeric",
      "title": "Is object a vector of whole numerics",
      "topics": [
        "is_whole_numeric"
      ]
    },
    {
      "page": "list_clean",
      "title": "Clean lists",
      "topics": [
        "list_clean"
      ]
    },
    {
      "page": "list_flatten2",
      "title": "Flatten a nested list to a single level",
      "topics": [
        "list_flatten2"
      ]
    },
    {
      "page": "logical_to_integer",
      "title": "Convert logical values to 0/1",
      "topics": [
        "logical_to_integer"
      ]
    },
    {
      "page": "match.arg2",
      "title": "Exact match of a choice argument",
      "topics": [
        "match.arg2"
      ]
    },
    {
      "page": "match.call2",
      "title": "Argument matching",
      "topics": [
        "match.call2"
      ]
    },
    {
      "page": "middle",
      "title": "Middle sorted element",
      "topics": [
        "middle"
      ]
    },
    {
      "page": "or",
      "title": "Logical OR with NA tolerance",
      "topics": [
        "or"
      ]
    },
    {
      "page": "quiet",
      "title": "Suppress printed output",
      "topics": [
        "quiet"
      ]
    },
    {
      "page": "resample",
      "title": "Random sample",
      "topics": [
        "resample"
      ]
    },
    {
      "page": "reset_rownames",
      "title": "Reset data frame row names",
      "topics": [
        "remove_rownames",
        "reset_rownames"
      ]
    },
    {
      "page": "rle2",
      "title": "Run length encoding",
      "topics": [
        "rle2"
      ]
    },
    {
      "page": "rm_na",
      "title": "Remove missing values",
      "topics": [
        "rmna",
        "rm_na"
      ]
    },
    {
      "page": "round2",
      "title": "Round mixed-type numbers",
      "topics": [
        "round2"
      ]
    },
    {
      "page": "rowCumsums",
      "title": "Row-wise cumulative sums",
      "concept": [
        "rowwise"
      ],
      "topics": [
        "rowCumsums"
      ]
    },
    {
      "page": "rowMaxs",
      "title": "Row-wise maxima",
      "concept": [
        "rowwise"
      ],
      "topics": [
        "rowMaxs"
      ]
    },
    {
      "page": "rowMaxs2",
      "title": "Row-wise maxima with NA allowance",
      "concept": [
        "rowwise"
      ],
      "topics": [
        "rowMaxs2"
      ]
    },
    {
      "page": "rowMeans2",
      "title": "Row-wise means with NA allowance",
      "concept": [
        "rowwise"
      ],
      "topics": [
        "rowMeans2"
      ]
    },
    {
      "page": "rowSums2",
      "title": "Row-wise sums with NA allowance",
      "concept": [
        "rowwise"
      ],
      "topics": [
        "rowSums2"
      ]
    },
    {
      "page": "seq2",
      "title": "Nondecreasing integer sequence",
      "topics": [
        "seq2"
      ]
    },
    {
      "page": "str_trim2",
      "title": "Remove whitespace",
      "topics": [
        "str_trim2"
      ]
    }
  ],
  "_readme": "https://bitbucket.org/bklamer/bkbase/raw/HEAD/README.md",
  "_rundeps": [],
  "_score": 2.929418925714293,
  "_indexed": false,
  "_nocasepkg": "bkbase",
  "_universes": [
    "bklamer"
  ],
  "_binaries": [
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "0.0.1",
      "date": "2026-10-21T00:52:48.000Z",
      "distro": "resolute",
      "commit": "bf25ef8ca696998697f883e9be436c01c7b62934",
      "fileid": "https://r2.ropensci.org/3c10061a2f0f416ec28bf96743fabbc252c52237f1bb3c20bba1fe2f4d3d8481",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/bklamer/actions/runs/39523551192"
    },
    {
      "r": "4.6.1",
      "os": "linux",
      "version": "0.0.1",
      "date": "2026-10-21T00:52:52.000Z",
      "distro": "resolute",
      "commit": "bf25ef8ca696998697f883e9be436c01c7b62934",
      "fileid": "https://r2.ropensci.org/397f79d8dd270d367e7f6807a602dba43a8956cdb96b292db15609425c8ab27b",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/bklamer/actions/runs/39523551192"
    },
    {
      "r": "4.5.3",
      "os": "mac",
      "version": "0.0.1",
      "date": "2026-10-21T00:52:42.000Z",
      "commit": "bf25ef8ca696998697f883e9be436c01c7b62934",
      "fileid": "https://r2.ropensci.org/daabf077e7c7ca26d40b961ede53530166019aae67b75e80b732de9ae7abcc01",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/bklamer/actions/runs/39523551192"
    },
    {
      "r": "4.6.1",
      "os": "mac",
      "version": "0.0.1",
      "date": "2026-10-21T00:53:02.000Z",
      "commit": "bf25ef8ca696998697f883e9be436c01c7b62934",
      "fileid": "https://r2.ropensci.org/aa67e56587c1b644bc6ebee96b8025e26a2e8c95122d48f842f550a4d54ff3c3",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/bklamer/actions/runs/39523551192"
    },
    {
      "r": "4.6.0",
      "os": "wasm",
      "version": "0.0.1",
      "date": "2026-10-21T00:52:54.000Z",
      "commit": "bf25ef8ca696998697f883e9be436c01c7b62934",
      "fileid": "https://r2.ropensci.org/ddfeeb9e2f8aab373574ede5dcfe232e60ec4c9f3b47d3aa160301af2296d4a5",
      "status": "success",
      "buildurl": "https://github.com/r-universe/bklamer/actions/runs/39523551192"
    },
    {
      "r": "4.7.0",
      "os": "win",
      "version": "0.0.1",
      "date": "2026-10-21T00:52:17.000Z",
      "commit": "bf25ef8ca696998697f883e9be436c01c7b62934",
      "fileid": "https://r2.ropensci.org/80f71813d7c00aa2a47231cb7aeb9003f98695acdf69634a747a560d948da704",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/bklamer/actions/runs/39523551192"
    },
    {
      "r": "4.5.3",
      "os": "win",
      "version": "0.0.1",
      "date": "2026-10-21T00:52:20.000Z",
      "commit": "bf25ef8ca696998697f883e9be436c01c7b62934",
      "fileid": "https://r2.ropensci.org/4eec587077b3cdbc4eb5bb943cc17ddd48c3f04bd72302f56bc712c83fbf7903",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/bklamer/actions/runs/39523551192"
    },
    {
      "r": "4.6.1",
      "os": "win",
      "version": "0.0.1",
      "date": "2026-10-21T00:52:23.000Z",
      "commit": "bf25ef8ca696998697f883e9be436c01c7b62934",
      "fileid": "https://r2.ropensci.org/75033a2dd924ecf592a35d93f702592f50789adef7dcc5623365dc6573e068be",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/bklamer/actions/runs/39523551192"
    }
  ]
}