Learn R Programming

⚠️There's a newer version (0.2.6) of this package.Take me there.

{poorman}

Overview

{poorman} is a grammar of data manipulation, providing dependency free versions of {dplyr} verbs that help you solve the most common data manipulation challenges:

  • select() picks variables based on their names.
  • mutate() adds new variables that are functions of existing variables.
  • filter() picks cases based on their values.
  • summarise() reduces multiple values down to a single summary.
  • arrange() changes the ordering of the rows.

{poorman} attempts to replicate the {dplyr} API exactly such that your {dplyr} code will still run even if you use {poorman} in its place. In addition to replicating {dplyr} functionality, {poorman} implements other functionality from the wider {tidyverse} such as select helpers and the pipe, %>%.

For more details on the functionality available within {poorman}, check out the {poorman} series of blog posts here.

Installation

You can install:

  • the development version from GitHub with
# install.packages("remotes")
remotes::install_github("nathaneastwood/poorman")
  • the latest release from CRAN with
install.packages("poorman")

Docker

If you’d like to try out the latest version of the package on CRAN using Docker, you can run the latest image with:

docker run --rm -it nathaneastwood/poorman

Usage

library(poorman, warn.conflicts = FALSE)
# 
#   I'd seen my father. He was a poor man, and I watched him do astonishing things.
#     - Sidney Poitier

mtcars %>%
  select(mpg, wt, starts_with("c")) %>%
  mutate(kpl = (1.609 * mpg) / 3.785, wt_kg = wt * 453.5924) %>%
  filter(mpg > 28)
#                 mpg    wt cyl carb      kpl    wt_kg
# Fiat 128       32.4 2.200   4    1 13.77321 997.9033
# Honda Civic    30.4 1.615   4    2 12.92301 732.5517
# Toyota Corolla 33.9 1.835   4    1 14.41086 832.3421
# Lotus Europa   30.4 1.513   4    2 12.92301 686.2853

mtcars %>%
  group_by(am, cyl) %>%
  summarise(mean_mpg = mean(mpg), sd_mpg = sd(mpg)) %>%
  ungroup()
#   am cyl mean_mpg    sd_mpg
# 1  0   4 22.90000 1.4525839
# 2  0   6 19.12500 1.6317169
# 3  0   8 15.05000 2.7743959
# 4  1   4 28.07500 4.4838599
# 5  1   6 20.56667 0.7505553
# 6  1   8 15.40000 0.5656854

Related Work

  • {dplyr}
  • {bplyr} - imports {magrittr} and {rlang}; it prepends functions with b_*(), e.g. b_select().
  • {tbltools} - imports {magrittr} and appends *_data() to each of its functions, e.g. select_data().

Copy Link

Version

Install

install.packages('poorman')

Monthly Downloads

8,104

Version

0.2.4

License

MIT + file LICENSE

Issues

Pull Requests

Stars

Forks

Maintainer

Nathan Eastwood

Last Published

November 27th, 2020

Functions in poorman (0.2.4)

context

Context dependent expressions
group_by

Group by one or more variables
glimpse

Get a glimpse of your data
poorman

poorman: A Poor Man's Dependency Free Recreation of 'dplyr'
arrange

Arrange rows by variables
across

Apply a function (or functions) across multiple columns
filter_joins

Filtering joins filter rows from x based on the presence or absence of matches in y:
filter

Return rows with matching conditions
na_if

Convert values to NA
pull

Pull out a single variable
near

Compare two numeric vectors
group_split

Split data.frame by groups
if_else

Vectorised if
coalesce

Find first non-missing element
select_helpers

Select Helpers
slice

Subset rows by position
rownames

Tools for working with row names
select

Subset columns using their names and types
between

Do values in a numeric vector fall in specified range?
bind

Efficiently bind multiple data.frames by row and column
lag

Compute lagged or leading values
mutate

Create or transform variables
group_metadata

Grouping metadata
desc

Descending order
distinct

Subset distinct/unique rows
group_cols

Select Grouping Variables
with_groups

Perform an operation with temporary groups
nest_by

Nest By
relocate

Change column order
n_distinct

Count the number of unique values in a set of vectors
mutate_joins

Mutating Joins
recode

Recode values
peek_vars

Peek at variables in the selection context
summarise

Reduce multiple values down to a single value
nth

Extract the first, last or nth value from a vector
unite

Unite Multiple Columns Into One
where

Select variables with a function
window_rank

Windowed Rank Functions
pipe

Forward-pipe operator
replace_na

Replace missing values
rename

Rename columns
case_when

A General Vetorised if()
count

Count observations by group