cleanYourFrame

library(framecleaner)
library(printr)
library(dplyr)

Data imported from excel and csv in business situations can have messy characteristics and data formats. This package provides functions to tidy your data frame using the power of tidyselect.

create sample data

tibble::tibble(
  date = c("20190101", "20190305", "20201012"),
  numeric_val = c(1, NA, 5),
  char_val = c("", "    val ", "-")
) -> sample_table

sample_table
date numeric_val char_val
20190101 1
20190305 NA val
20201012 5 -

set nas

Data occasionally has different ways to represent NA values. set_na checks as default c("-", "", " ", "null") but any values can be supplied to automatically be set to NA. This is helpful when you want to check the NA profile of a data frame using validata::diagnose

sample_table %>% 
  make_na()
date numeric_val char_val
20190101 1 NA
20190305 NA val
20201012 5 NA

remove whitespace

remove whitespace from the ends of character variables that may be otherwise undetectable by inspection.

sample_table %>% 
  remove_whitespace()
date numeric_val char_val
20190101 1
20190305 NA val
20201012 5 -

set dates

automatically convert character columns that should be dates.

sample_table %>% 
  set_date()
date numeric_val char_val
2019-01-01 1
2019-03-05 NA val
2020-10-12 5 -

relocate all

relocates an unorganized dataframe using heuristics such as putting character and date columns first, and organizing by alphabetical order.

sample_table %>% 
  relocate_all()
date char_val numeric_val
20190101 1
20190305 val NA
20201012 - 5

clean frame

Wrapper function to apply all cleaning operations to a data frame using sensible defaults. I encourage you to build your own clean_frame function to suit your needs.

sample_table %>% 
  clean_frame()
DATE NUMERIC_VAL CHAR_VAL
20190101 1 NA
20190305 NA val
20201012 5 NA

fill nas

use tidyselect to fill NAs with a single value

sample_table %>% 
  fill_na()
date numeric_val char_val
20190101 1
20190305 0 val
20201012 5 -