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

9,147

Version

0.2.3

License

MIT + file LICENSE

Issues

Pull Requests

Stars

Forks

Maintainer

Nathan Eastwood

Last Published

November 12th, 2020

Functions in poorman (0.2.3)

across

Apply a function (or functions) across multiple columns
pipe

Forward-pipe operator
relocate

Change column order
poorman

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

Rename columns
case_when

A General Vetorised if()
coalesce

Find first non-missing element
if_else

Vectorised if
group_split

Split data.frame by groups
group_metadata

Grouping metadata
group_cols

Select Grouping Variables
between

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

Subset distinct/unique rows
desc

Descending order
bind

Efficiently bind multiple data.frames by row and column
window_rank

Windowed Rank Functions
filter

Return rows with matching conditions
filter_joins

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

Mutating Joins
n_distinct

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

Tools for working with row names
replace_na

Replace missing values
count

Count observations by group
context

Context dependent expressions
near

Compare two numeric vectors
na_if

Convert values to NA
select

Subset columns using their names and types
select_helpers

Select Helpers
summarise

Reduce multiple values down to a single value
slice

Subset rows by position
peek_vars

Peek at variables in the selection context
nest_by

Nest By
lag

Compute lagged or leading values
mutate

Create or transform variables
recode

Recode values
pull

Pull out a single variable
unite

Unite Multiple Columns Into One
where

Select variables with a function
glimpse

Get a glimpse of your data
group_by

Group by one or more variables
arrange

Arrange rows by variables