hw07-ziqiangt

hw06-ziqiangt created by GitHub Classroom

Hi, here is the STAT547 hw07 of ziqiang

Overview

This is to make some changes to an existing R package from jennybc. You can click Original foofactors to view more details about this cource.

My repository is structured as follows:

| Documents | Description | |-----------|------------------------------------| | README.md | the markdown file for homework 7 | | README.rmd | the R-markdown file for homework 7 | | R | the R Scripts for homework 7 package | | testthat examples | test cases for the new functions | | hello-foofactors.Rmd | the vignettes R-markdown file | |Other | Other files such a .Rproj and .gitignore|

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

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("https://github.com/STAT545-UBC-students/hw07-ziqiangt")

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))

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

freq_out(x)

detect factors that should be character because # unique values = length

f_detect(factor(c("a", "b", "c","a")))
f_detect(factor(c("a", "b", "c","d")))

write a version of reorder() that uses desc() a la (d)plyr

f_reorder(factor(c("B", "A", "D")))

write a version of factor() that sets levels to the order in which they appear in the data, i.e. set the levels “as is”

f_set(factor(c("B", "A", "D")))

functions to write and read data frames to plain text delimited files while retaining factor levels; maybe by writing/reading a companion file?

df <- data.frame(
    kids = factor(c(1,0,1,0,0,0), levels = c(0, 1),
    labels = c("boy", "girl"))
  )

levels(df$kids)

x_write(df, "./df_x.csv", "./df_x.txt")
read_return <- x_read("./df_x.csv", "./df_x.txt")
levels(read_return$kids)

Here is powers package you might interested

powers

Here is my previous homework if you are interested

It's would be very kind if you could give me some comments.

homework07 Comments



STAT545-UBC-students/hw07-ziqiangt documentation built on May 24, 2019, 7:53 a.m.