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

tribe

Play with the tribe of attributes in R.

Installation

You can install tribe from GitHub with:

# install.packages("devtools")
devtools::install_github("paulponcet/tribe")

Verbs for easy manipulation of attributes

This package provides verbs for easy manipulation of attributes. These verbs are:

  • define to create or modify attributes;
  • keep to select attributes (and NULLify the others);
  • rebrand to rename attributes;
  • take to extract attributes.

The function tribe is a convenient synonym of attributes, with the slight difference that it always returns a named list.

library(magrittr)
library(tribe)

# Use 'define' to create or modify attributes
df <- data.frame(x = 1:2, y = 2:3) %>%
  define(example="yes", package="dplyr")
tribe(df)

# Use 'take' to extract attribute values
take(df, names)

# 'take_' is the standard evaluation version of 'take'
take_(df, "class")
take_(df, ~ package)

# Similarly 'define_' is the standard evaluation version of 'define'
df <- df %>%
  define_(package = ~ NULL,
          example = ~ "no")
tribe(df)

A new pipe that preserves attributes

The tribe package provides you with a new pipe %@>% that enables propagation of attributes.

library(dplyr)
library(tribe)

df <- data.frame(x = 1:2, y = 2:3) %>%
 define(example="yes",
        package="tribe", 
        class = c("my_tbl", "data.frame"))

# Attributes just created are lost when the object 
# passes through dplyr verbs
tribe(df %>% mutate(z=3))

# With the pipe '%@>%', most attributes are kept
tribe(df %@>% mutate(z=3))

# One can create a new pipe to adjust attributes propagation settings
"%newpipe>%" <- make_pipe(propagate="none", keep_also = "example")
tribe(df %newpipe>% mutate(z=3))

Copy Link

Version

Down Chevron

Install

install.packages('tribe')

Monthly Downloads

33

Version

0.1.6

License

MIT + file LICENSE

Issues

Pull Requests

Stars

Forks

Maintainer

Last Published

November 14th, 2017

Functions in tribe (0.1.6)