Play with the Tribe of Attributes

Functions to make manipulation of object attributes easier. It also contains a few functions that extend the 'dplyr' package for data manipulation, and it provides new pipe operators, including the pipe '%@>%' similar to the 'magrittr' '%>%', but with the additional functionality to enable attributes propagation.

Travis-CI Build Status

Play with the tribe of attributes in R.


You can install tribe from GitHub with:

# install.packages("devtools")

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.

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

A new pipe that preserves attributes

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

df <- data.frame(x = 1:2, y = 2:3) %>%
        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))


tribe 0.1.6

  • New argument 'try' in 'make_pipe()' to create a new pipe '%try>%'.

tribe 0.1.5

  • New argument 'keep_obj' in 'tribe()'.
  • New function 'untribe()'.

tribe 0.1.4

  • Updated authors in the DESCRIPTION file.

tribe 0.1.3

  • 'stick_to()' and 'unstick()' added.

tribe 0.1.2

  • The pipe '%at>%' is renamed '%@>%'.
  • Dplyr verbs for list manipulations and mutate_which() function are transferred to the 'lplyr' package
  • Infix attribute accessor "%@%" is added (borrowed from package 'purrr')

tribe 0.1.1

  • Minor corrections

tribe 0.1.0

  • Creation of the package 'tribe'

Reference manual

It appears you don't have a PDF plugin for this browser. You can click here to download the reference manual.


0.1.7 by Paul Poncet, 2 months ago

Report a bug at

Browse source code at

Authors: Paul Poncet [aut, cre], Stefan Milton Bache [aut] (for functions copied or modified from the 'magrittr' package), Hadley Wickham [aut] (for functions copied or modified from the 'magrittr' package)

Documentation:   PDF Manual  

MIT + file LICENSE license

Imports bazar, dplyr, lazyeval, magrittr, rlist, rstudioapi

Suggests knitr, ggplot2, lplyr, observer, testthat

See at CRAN