{"id":16572613,"url":"https://github.com/knapply/knapplyr","last_synced_at":"2025-03-05T14:25:46.670Z","repository":{"id":105873454,"uuid":"212808377","full_name":"knapply/knapplyr","owner":"knapply","description":null,"archived":false,"fork":false,"pushed_at":"2019-10-19T20:01:59.000Z","size":26,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-16T03:14:25.807Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"R","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/knapply.png","metadata":{"files":{"readme":"README.Rmd","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-10-04T12:19:51.000Z","updated_at":"2019-10-19T20:02:00.000Z","dependencies_parsed_at":null,"dependency_job_id":"c19e210e-9162-45b6-b87a-4463fd5f8c1a","html_url":"https://github.com/knapply/knapplyr","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/knapply%2Fknapplyr","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/knapply%2Fknapplyr/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/knapply%2Fknapplyr/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/knapply%2Fknapplyr/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/knapply","download_url":"https://codeload.github.com/knapply/knapplyr/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":242041690,"owners_count":20062271,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-11T21:28:06.102Z","updated_at":"2025-03-05T14:25:46.663Z","avatar_url":"https://github.com/knapply.png","language":"R","funding_links":[],"categories":[],"sub_categories":[],"readme":"---\noutput:\n  github_document:\n    html_preview: true\nalways_allow_html: yes\neditor_options: \n  chunk_output_type: console\n---\n\n\n\n\u003c!-- README.Rmd generates README.md. --\u003e\n\n```{r, echo = FALSE}\nknitr::opts_chunk$set(\n  # collapse = TRUE,\n  fig.align = \"center\",\n  comment = \"#\u003e\",\n  fig.path = \"man/figures/\",\n  message = FALSE,\n  warning = FALSE\n)\n# options(width = 400)\n```\n\n\n# `{knapplyr}`\n\n\u003c!-- badges: start --\u003e\n[![Lifecycle](https://img.shields.io/badge/lifecycle-experimental-orange.svg)](https://www.tidyverse.org/lifecycle/#experimental)\n[![GitHub last commit](https://img.shields.io/github/last-commit/knapply/knapplyr.svg)](https://github.com/knapply/knapplyr/commits/master)\n[![Codecov test coverage](https://codecov.io/gh/knapply/knapplyr/branch/master/graph/badge.svg)](https://codecov.io/gh/knapply/knapplyr?branch=master)\n[![AppVeyor build status](https://ci.appveyor.com/api/projects/status/github/knapply/knapplyr?branch=master\u0026svg=true)](https://ci.appveyor.com/project/knapply/knapplyr)\n[![Travis-CI Build Status](https://travis-ci.org/knapply/knapplyr.svg?branch=master)](https://travis-ci.org/knapply/knapplyr)\n[![License: GPL v3](https://img.shields.io/badge/License-GPLv3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0)\n[![Depends](https://img.shields.io/badge/Depends-GNU_R\u003e=3.1-blue.svg)](https://www.r-project.org/)\n[![GitHub code size in bytes](https://img.shields.io/github/languages/code-size/knapply/knapplyr.svg)](https://github.com/knapply/knapplyr)\n[![HitCount](http://hits.dwyl.io/knapply/knapplyr.svg)](http://hits.dwyl.io/knapply/knapplyr)\n\u003c!-- badges: end --\u003e\n\n\n\n Utility functions to facilitate robust R programming that are _heavily_-inspired by `{purrr}`.\n \n `{knapplyr}` is meant to serve as a controlled environment for development and testing. The functions are not so much intended to be imported elsewhere, but instead to make it easy to have sane, tested, dependency-free utilities that can be easily used as internal, utility functions in other packages. \n \n This is mainly for personal purposes, but if you'd like to use it, just add the `/R/knapply-utils.R` file to your package's `/R` folder. The functions will then be accessible just like any of your package's other functions.\n\n\n\n```{r, echo=FALSE}\n`%||%` \u003c- knapplyr:::`%||%`\n`%{NULL}%` \u003c- knapplyr:::`%{NULL}%`\n`%{}%` \u003c- knapplyr:::`%{}%`\n`%{NA}%` \u003c- knapplyr:::`%{NA}%`\n`%{\"\"}%` \u003c- knapplyr:::`%{\"\"}%`\n```\n\n# Default-ers\n\n\n```{r, echo=FALSE}\nlibrary(dplyr)\nfoos \u003c- c(\"`%||%`\",\n          \"`%{NULL}%`\",\n          \"`%{}%`\",\n          \"`%{NA}%`\",\n          '`%{\"\"}%`')\n\nexs \u003c- c('NULL %||% \"common default NULL replacement\"',\n         'NULL %{NULL}% \"alternate NULL replacement\"',\n         'character(0) %{}% \"default empty replacement\"',\n         'NA %{NA}% \"default NA replacement\"',\n         '\"\" %{\"\"}% \"default empty string replacement\"')\n\ntibble(`{knapply} Function` = foos, Example = exs) %\u003e% \n  mutate(Result = glue::glue(\"`{purrr::map_chr(Example, ~ eval(parse(text = .x)))}`\"),\n         Example = glue::glue('`{Example}`')) %\u003e% \n  knitr::kable(format = \"html\", escape = FALSE)\n```\n\n\n\n## `.map*()`-ers\n\n```{r, echo=FALSE}\n.map \u003c- knapplyr:::.map\n.map_chr \u003c- knapplyr:::.map_chr\n.map_lgl \u003c- knapplyr:::.map_lgl\n.map_int \u003c- knapplyr:::.map_int\n.map_dbl \u003c- knapplyr:::.map_dbl\n```\n\n```{r}\nl1 \u003c- list(a = 1:3, b = -1:-3)\nl1\n.map(l1, as.character)\n.map_chr(l1, paste, collapse = \", \")\n.map_int(l1, sum)\n.map_dbl(l1, function(x) sum(x) * 2.5)\n.map_lgl(l1, function(x) all(x \u003e 0))\n```\n\n## `.map2*()`-ers\n\n```{r, echo=FALSE}\n.map2 \u003c- knapplyr:::.map2\n.map2_chr \u003c- knapplyr:::.map2_chr\n.map2_lgl \u003c- knapplyr:::.map2_lgl\n.map2_int \u003c- knapplyr:::.map2_int\n.map2_dbl \u003c- knapplyr:::.map2_dbl\n```\n\n```{r}\nl2 \u003c- list(a = 4:6, b = -4:-6)\nl2\n.map2(l1, l2, c)\n.map2_chr(l1, l2, paste, collapse = \" | \")\n.map2_int(l1, l2, min)\n.map2_dbl(l1, l2, function(x, y) sort(c(x, y))[[1L]])\n.map2_lgl(l1, l2, function(x, y) all(c(x, y) \u003e 0))\n```\n\n\n```{r, echo=FALSE}\n.set_names \u003c- knapplyr:::.set_names\n```\n\n```{r}\nn \u003c- .set_names(\"named\")\nn\n```\n\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fknapply%2Fknapplyr","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fknapply%2Fknapplyr","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fknapply%2Fknapplyr/lists"}