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.
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.
devtools::install_github("jmurthy12/foofactors")
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))
The freq_out()
function returns a frequency table as a well-named tbl_df
:
freq_out(x)
Link for unit test is avalable here
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)
Link for unit test is avalable here
I've made changes to Jenny Bryan's document starting from the below section.
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
Link for unit test is avalable here
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))
Link for unit test is avalable here
factor_as_orginal() re-orders the factor levels same as input data
library(gapminder) factor_as_orginal(gapminder$continent)
Link for unit test is avalable here
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.