{
  "_id": "6a215ef0cd65a98ecbd30189",
  "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",
  "RoxygenNote": "7.3.3",
  "Roxygen": "list(markdown = TRUE)",
  "Encoding": "UTF-8",
  "Repository": "https://bklamer.r-universe.dev",
  "Date/Publication": "2026-06-04 03:51:34 UTC",
  "RemoteUrl": "https://bitbucket.org/bklamer/bkbase",
  "RemoteRef": "HEAD",
  "RemoteSha": "0ddb60b5a88904a4a279c82756238249deba487b",
  "NeedsCompilation": "no",
  "Packaged": {
    "Date": "2026-06-04 11:06:26 UTC",
    "User": "root"
  },
  "Author": "Brett Klamer [aut, cre]",
  "Maintainer": "Brett Klamer <code@brettklamer.com>",
  "MD5sum": "0e61dff2a95664e77503d2ad1811bf5c",
  "_user": "bklamer",
  "_type": "src",
  "_file": "bkbase_0.0.1.tar.gz",
  "_fileid": "4ff7b4a949246c3293627ca7ddef14b73cc3ac4d8a1a1bd4ac2674027426b68d",
  "_filesize": 392127,
  "_sha256": "4ff7b4a949246c3293627ca7ddef14b73cc3ac4d8a1a1bd4ac2674027426b68d",
  "_created": "2026-06-04T11:06:26.000Z",
  "_published": "2026-06-04T11:18:08.144Z",
  "_distro": "noble",
  "_jobs": [
    {
      "job": 79505459970,
      "time": 98,
      "config": "linux-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "7409855772"
    },
    {
      "job": 79505459974,
      "time": 103,
      "config": "linux-release-x86_64",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7409857030"
    },
    {
      "job": 79505459962,
      "time": 77,
      "config": "macos-oldrel-arm64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "7410039778"
    },
    {
      "job": 79505459938,
      "time": 116,
      "config": "macos-release-arm64",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7409869347"
    },
    {
      "job": 79505120800,
      "time": 126,
      "config": "source",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7409825261"
    },
    {
      "job": 79505459957,
      "time": 82,
      "config": "wasm-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7409850942"
    },
    {
      "job": 79505459952,
      "time": 67,
      "config": "windows-devel",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "7409846126"
    },
    {
      "job": 79505459933,
      "time": 76,
      "config": "windows-oldrel",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "7409848956"
    },
    {
      "job": 79505459978,
      "time": 114,
      "config": "windows-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7409860801"
    }
  ],
  "_buildurl": "https://github.com/r-universe/bklamer/actions/runs/26947815701",
  "_status": "success",
  "_host": "GitHub-Actions",
  "_upstream": "https://bitbucket.org/bklamer/bkbase",
  "_commit": {
    "id": "0ddb60b5a88904a4a279c82756238249deba487b",
    "author": "Brett Klamer <code@brettklamer.com>",
    "committer": "Brett Klamer <code@brettklamer.com>",
    "message": "Update tests for `<complex>[i] <- NA` changes in R 4.6.0\n",
    "time": 1780545094
  },
  "_maintainer": {
    "name": "Brett Klamer",
    "email": "code@brettklamer.com",
    "login": "bklamer",
    "description": "I don't use github for personal projects.",
    "uuid": 8397446
  },
  "_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-25",
      "n": 10
    },
    {
      "week": "2025-26",
      "n": 7
    },
    {
      "week": "2025-27",
      "n": 6
    },
    {
      "week": "2025-41",
      "n": 18
    },
    {
      "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
    }
  ],
  "_tags": [],
  "_userbio": {
    "uuid": 8397446,
    "type": "user",
    "name": "Brett Klamer",
    "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.0",
  "_assets": [
    "extra/bkbase.html",
    "extra/citation.cff",
    "extra/citation.html",
    "extra/citation.json",
    "extra/citation.txt",
    "extra/contents.json",
    "extra/NEWS.html",
    "extra/NEWS.txt",
    "extra/readme.html",
    "extra/readme.md",
    "manual.pdf"
  ],
  "_cranurl": false,
  "_exports": [
    "%==%",
    "%in2%",
    "all2",
    "and",
    "any2",
    "as_na",
    "csw",
    "dots",
    "dots_char",
    "fdeparse",
    "fformula",
    "fmean",
    "fmedian",
    "fncol",
    "fnrow",
    "fouter",
    "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.call2",
    "middle",
    "or",
    "quiet",
    "remove_rownames",
    "resample",
    "reset_rownames",
    "rle2",
    "rm_na",
    "rmna",
    "round2",
    "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": "fouter",
      "title": "Fast outer",
      "topics": [
        "fouter"
      ]
    },
    {
      "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.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": "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-06-04T11:08:10.000Z",
      "distro": "noble",
      "commit": "0ddb60b5a88904a4a279c82756238249deba487b",
      "fileid": "dd6af5bbd9f2624f0f432ff268de661b1ba1b67e5b668889cdd6416c3dc76781",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/bklamer/actions/runs/26947815701"
    },
    {
      "r": "4.6.0",
      "os": "linux",
      "version": "0.0.1",
      "date": "2026-06-04T11:08:13.000Z",
      "distro": "noble",
      "commit": "0ddb60b5a88904a4a279c82756238249deba487b",
      "fileid": "6b570dd1f76df7ef7b1703bdf3d5164dfe373a85df38376d720371bb7f60e223",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/bklamer/actions/runs/26947815701"
    },
    {
      "r": "4.5.3",
      "os": "mac",
      "version": "0.0.1",
      "date": "2026-06-04T11:17:44.000Z",
      "commit": "0ddb60b5a88904a4a279c82756238249deba487b",
      "fileid": "cf832723a5a4b334391fd75da26c45cbad6724ec780dca2b587cab43f02ee6ad",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/bklamer/actions/runs/26947815701"
    },
    {
      "r": "4.6.0",
      "os": "mac",
      "version": "0.0.1",
      "date": "2026-06-04T11:08:52.000Z",
      "commit": "0ddb60b5a88904a4a279c82756238249deba487b",
      "fileid": "aec58bcb29c9488fc14508262aa5b6ceee8d01e0412ffcb8c81199b805feb288",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/bklamer/actions/runs/26947815701"
    },
    {
      "r": "4.6.0",
      "os": "wasm",
      "version": "0.0.1",
      "date": "2026-06-04T11:08:07.000Z",
      "commit": "0ddb60b5a88904a4a279c82756238249deba487b",
      "fileid": "9b32aed55d31d1c547e2e9f00f2cc83e36c70fd4608e546fb1cb7dcabe78ef90",
      "status": "success",
      "buildurl": "https://github.com/r-universe/bklamer/actions/runs/26947815701"
    },
    {
      "r": "4.7.0",
      "os": "win",
      "version": "0.0.1",
      "date": "2026-06-04T11:07:31.000Z",
      "commit": "0ddb60b5a88904a4a279c82756238249deba487b",
      "fileid": "047955af99e8192c1ddd4e121eee88e42444ca34f42606dc7a189e11741079e0",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/bklamer/actions/runs/26947815701"
    },
    {
      "r": "4.5.3",
      "os": "win",
      "version": "0.0.1",
      "date": "2026-06-04T11:07:42.000Z",
      "commit": "0ddb60b5a88904a4a279c82756238249deba487b",
      "fileid": "5ec05835eab610b6aec2ecebb6199db055175a672afd961fdc0c1edaf246935e",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/bklamer/actions/runs/26947815701"
    },
    {
      "r": "4.6.0",
      "os": "win",
      "version": "0.0.1",
      "date": "2026-06-04T11:08:17.000Z",
      "commit": "0ddb60b5a88904a4a279c82756238249deba487b",
      "fileid": "9296b231dc322f3c3a700bd779844b47968306edfab495c214eab7e5432d1655",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/bklamer/actions/runs/26947815701"
    }
  ]
}