knitr::opts_chunk$set(
  collapse = TRUE,
  comment = "#>",
  fig.path = "README-"
)

All implementation and documentation is an extension of Jennifer Bryan's foofactors package.

NOTE: This is a toy package created for expository purposes. It is not meant to actually be useful. If you want a package for factor handling, please see forcats.

foofactors

Factors are a very useful type of variable in R, but they can also drive you nuts. This package provides some helper functions for the care and feeding of factors.

Installation

devtools::install_github("jmurthy12/foofactors")

Quick demo

Binding two factors via fbind():

library(foofactors)
a <- factor(c("character", "hits", "your", "eyeballs"))
b <- factor(c("but", "integer", "where it", "counts"))

Simply catenating two factors leads to a result that most don't expect.

c(a, b)

The fbind() function glues two factors together and returns factor.

fbind(a, b)

Often we want a table of frequencies for the levels of a factor. The base table() function returns an object of class table, which can be inconvenient for downstream work. Processing with as.data.frame() can be helpful but it's a bit clunky.

set.seed(1234)
x <- factor(sample(letters[1:5], size = 100, replace = TRUE))
table(x)
as.data.frame(table(x))

1) Function : freq_out()

The freq_out() function returns a frequency table as a well-named tbl_df:

freq_out(x)
Unit Test

Link for unit test is avalable here

2) Function : fbind()

Let's try fbind() on data sets "cars" and "mtcars"

str(mtcars)
str(cars)
fbind(mtcars$cyl[c(2, 3, 5)], cars$speed[c(1, 2, 3)])

Let's work on Iris data set as suggested in class

str(iris)
Unit Test

Link for unit test is avalable here

I've made changes to Jenny Bryan's document starting from the below section.

3) Function : check_factor_character()

check_factor_character() determines if factors are required

Returns :

TRUE : If factors are not required FALSE : If factors are required (i.e.., factors are not characters)

check_factor_character(iris$Species)
#> [1] FALSE
Unit Test

Link for unit test is avalable here

4) Function : reorder_descending()

reorder_descending() reorders the factor levels in descending order,this is used especially in plots as already discussed in fct_reorder() section of Homework 5

levels(iris$Species)
levels(reorder_descending(iris$Species))
Unit Test

Link for unit test is avalable here

5) Function : factor_as_orginal()

factor_as_orginal() re-orders the factor levels same as input data

library(gapminder)
factor_as_orginal(gapminder$continent)
Unit Test

Link for unit test is avalable here



jmurthy12/foofactors documentation built on May 8, 2019, 1:36 a.m.