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.
Play with the tribe of attributes in R.
You can install tribe from GitHub with:
# install.packages("devtools")devtools::install_github("paulponcet/tribe")
This package provides verbs for easy manipulation of attributes. These verbs are:
at_mutate
to create or modify attributes;at_select
to select attributes (and NULL
ify the others);at_rename
to rename attributes;at_slice
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 attributesdf <- data.frame(x = 1:2, y = 2:3) %>% at_mutate(example="yes", package="dplyr")tribe(df) # Use 'at_slice' to extract attribute valuesat_slice(df, names) # 'at_slice_' is the standard evaluation version of 'at_slice'at_slice_(df, "class")at_slice_(df, ~ package) # Similarly 'at_mutate_' is the standard evaluation version of 'at_mutate'df <- df %>% at_mutate_(package = ~ NULL, example = ~ "no")tribe(df)
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) %>% at_mutate(example="yes", package="tribe", class = c("my_tbl", "data.frame")) # Attributes just created are lost when the object # passes through dplyr verbstribe(df %>% mutate(z=3)) # With the pipe '%@>%', most attributes are kepttribe(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))