{
  "_id": "6a509aa889c83ec243a2e797",
  "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-10 03:52:42 UTC",
  "RemoteUrl": "https://bitbucket.org/bklamer/bkbase",
  "RemoteRef": "HEAD",
  "RemoteSha": "2bee295e1fa226151b2b1211ce56f2a1381d2a69",
  "NeedsCompilation": "no",
  "Packaged": {
    "Date": "2026-07-10 07:06:51 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/af220b88085fe39127e70122484eff3496f5acfc8259d3810956ef88352587d1",
  "_filesize": 394394,
  "_sha256": "af220b88085fe39127e70122484eff3496f5acfc8259d3810956ef88352587d1",
  "_expires": "2026-10-18T07:09:26.000Z",
  "_created": "2026-07-10T07:06:51.000Z",
  "_published": "2026-07-10T07:09:28.052Z",
  "_jobs": [
    {
      "job": 86306751180,
      "time": 114,
      "config": "linux-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "8220649691"
    },
    {
      "job": 86306751170,
      "time": 107,
      "config": "linux-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "8220647309"
    },
    {
      "job": 86306751195,
      "time": 82,
      "config": "macos-oldrel-arm64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "8220638800"
    },
    {
      "job": 86306751190,
      "time": 89,
      "config": "macos-release-arm64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "8220641341"
    },
    {
      "job": 86306296993,
      "time": 175,
      "config": "source",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "8220611660"
    },
    {
      "job": 86306751166,
      "time": 85,
      "config": "wasm-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "8220640132"
    },
    {
      "job": 86306751223,
      "time": 70,
      "config": "windows-devel",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "8220634947"
    },
    {
      "job": 86306751196,
      "time": 74,
      "config": "windows-oldrel",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "8220636089"
    },
    {
      "job": 86306751221,
      "time": 68,
      "config": "windows-release",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "8220634365"
    }
  ],
  "_host": "GitHub-Actions",
  "_buildurl": "https://github.com/r-universe/bklamer/actions/runs/29075556080",
  "_status": "success",
  "_upstream": "https://bitbucket.org/bklamer/bkbase",
  "_commit": {
    "id": "2bee295e1fa226151b2b1211ce56f2a1381d2a69",
    "author": "Brett Klamer <code@brettklamer.com>",
    "committer": "Brett Klamer <code@brettklamer.com>",
    "message": "Optimize code and set NA_integer_ to FALSE\n",
    "time": 1781063562
  },
  "_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-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
    },
    {
      "week": "2026-24",
      "n": 1
    }
  ],
  "_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/NEWS.html",
    "extra/NEWS.txt",
    "extra/readme.html",
    "extra/readme.md",
    "LICENSE",
    "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.8750612633917,
  "_indexed": false,
  "_nocasepkg": "bkbase",
  "_universes": [
    "bklamer"
  ],
  "_binaries": [
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "0.0.1",
      "date": "2026-07-10T07:08:53.000Z",
      "distro": "resolute",
      "commit": "2bee295e1fa226151b2b1211ce56f2a1381d2a69",
      "fileid": "https://r2.ropensci.org/0333305462ee5ced3d24aff53e77878d911519024b60b7fcfdfed11f7057d0dc",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/bklamer/actions/runs/29075556080"
    },
    {
      "r": "4.6.1",
      "os": "linux",
      "version": "0.0.1",
      "date": "2026-07-10T07:08:47.000Z",
      "distro": "resolute",
      "commit": "2bee295e1fa226151b2b1211ce56f2a1381d2a69",
      "fileid": "https://r2.ropensci.org/5042d2954f1a86866ae4577b5c2310127f4558f0558fa699c52e961abeb534a5",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/bklamer/actions/runs/29075556080"
    },
    {
      "r": "4.5.3",
      "os": "mac",
      "version": "0.0.1",
      "date": "2026-07-10T07:08:22.000Z",
      "commit": "2bee295e1fa226151b2b1211ce56f2a1381d2a69",
      "fileid": "https://r2.ropensci.org/e4ad0d311b61e712658a846c9643e3b1cdcf3accc11cea7b6228aa3e017896a2",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/bklamer/actions/runs/29075556080"
    },
    {
      "r": "4.6.1",
      "os": "mac",
      "version": "0.0.1",
      "date": "2026-07-10T07:08:28.000Z",
      "commit": "2bee295e1fa226151b2b1211ce56f2a1381d2a69",
      "fileid": "https://r2.ropensci.org/7c0ce9d05cc779471a7c66e66cc8b8003351d8e5602fefb4477ecf41101b191a",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/bklamer/actions/runs/29075556080"
    },
    {
      "r": "4.6.0",
      "os": "wasm",
      "version": "0.0.1",
      "date": "2026-07-10T07:08:39.000Z",
      "commit": "2bee295e1fa226151b2b1211ce56f2a1381d2a69",
      "fileid": "https://r2.ropensci.org/1403c7a7c78f781063999bba4df57234cddca937e778090717c3de57fe652d49",
      "status": "success",
      "buildurl": "https://github.com/r-universe/bklamer/actions/runs/29075556080"
    },
    {
      "r": "4.7.0",
      "os": "win",
      "version": "0.0.1",
      "date": "2026-07-10T07:08:03.000Z",
      "commit": "2bee295e1fa226151b2b1211ce56f2a1381d2a69",
      "fileid": "https://r2.ropensci.org/cf1f99a1f29b33c1f962c212a5ffc7efea2981cf382540052d479f4f99715582",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/bklamer/actions/runs/29075556080"
    },
    {
      "r": "4.5.3",
      "os": "win",
      "version": "0.0.1",
      "date": "2026-07-10T07:08:01.000Z",
      "commit": "2bee295e1fa226151b2b1211ce56f2a1381d2a69",
      "fileid": "https://r2.ropensci.org/2f55fabfe61d60535e906b3388d4eaf37680e809891188d344d3bb003ed837af",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/bklamer/actions/runs/29075556080"
    },
    {
      "r": "4.6.1",
      "os": "win",
      "version": "0.0.1",
      "date": "2026-07-10T07:08:01.000Z",
      "commit": "2bee295e1fa226151b2b1211ce56f2a1381d2a69",
      "fileid": "https://r2.ropensci.org/f1b0ea253ad1e0fecd67a84d69f0eb352b90e1043c2c0854fe4ea255864b3062",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/bklamer/actions/runs/29075556080"
    }
  ]
}