clean_factor() switched the names and values of levelsclean_Date() and clean_POSIXct(): allow argument max_date to be the same length as xdigits in format()digits = 0 for format()clean_Date() now supports month-year format for which it sets the day as 1:
clean_Date("March")
#> (assuming format 'mmmm')
#> [1] "2021-03-01"
clean_Date("March 2020")
#> (assuming format 'mmmm yyyy')
#> [1] "2020-03-01"
* `freq()` now contains a `wt` argument to set the weights. The default (`NULL`) yields the old behaviour.
* Fixed a bug in `clean_POSIXct()` that led to the warning `Incompatible methods ("Ops.POSIXt", "Ops.Date") for ">"`
# cleaner 1.5.1
* New function `format_p_value()` to format raw p values according to the APA guideline
* `clean_Date()` now works with POSIX standards:
```r
clean_Date("2020-11-12 12:24:12")
clean_Date(c("2020-11-12 12:24:12", "2020-11-13"), guess_each = TRUE)
as_symbol = TRUE to print/format with currency symbolsNew function format_names() to quickly and easily change names of data.frame columns, lists or character vectors.
df <- data.frame(old.name = "test1", value = "test2")
format_names(df, snake_case = TRUE)
format_names(df, camelCase = TRUE)
format_names(df, c(old.name = "new_name", value = "measurement"))
library(dplyr)
starwars %>%
format_names(camelCase = TRUE) %>% # column names
mutate(name = name %>%
format_names(snake_case = TRUE)) # values in column
New generic function na_replace() to replace NA values in any data type. Its default replacement value is dependent on the data type that is given as input: 0 for numeric values and class matrix, FALSE for class logical, today for class Date, and "" otherwise.
na_replace(c(1, 2, NA, NA))
#> [1] 1 2 0 0
na_replace(c(1, 2, NA, NA), replacement = -1)
#> [1] 1 2 -1 -1
library(dplyr)
starwars %>%
na_replace(hair_color) # only replace NAs in this column
starwars %>%
na_replace() # replace NAs in all columns ("" for hair_color and 0 for birth_year)
Support for the upcoming R 4.1.0
rdate() to generate random dates (in analogy to e.g. runif())freq()):
na.rmhist()format() on a frequency tableas.vector(), which also supports dates
library(dplyr)
library(cleaner)
data.frame(dates = rdate(100)) %>%
freq(dates) %>%
as.vector()
clean_Date() not accepting already POSIX or Date inputclean_Date(..., guess_each = TRUE) it now accepts the format parameter as a vector of options to let it choose fromclean_Date() and clean_POSIXct gained a parameter max_date (that defaults to today), so that they will never return years beyond a specified date:
# old
clean_Date("23-01-67")
#> [1] "2067-01-23"
# new
clean_Date("23-01-67")
#> [1] "1967-01-23"
#> Warning: Some years were decreased by 100 to not exceed today.
#> Use clean_Date(..., max_date = Inf) to prevent this.
clean_Date("23-01-67", max_date = Inf)
#> [1] "2067-01-23"
lintr packagepercentage class into the percentage() function, i.e. percentage(as.percentage(1)) would failas.percentage(2.5e-14)clean_double() and clean_integer()median() in percentagesNA in percentages would not be formatted correctlycleaneras.percentage() and clean_percentage(). They also come with 'S3 methods' for print, format, sum, min and max.clean_numeric(), clean_percentage() and clean_currency()clean_character() on R v3.5 and loweras.currency() and clean_currency(). They also come with 'S3 methods' for print, format, sum, min and max.clean_POSIXct() to clean date/time objectstop_freq() now correctly selects bottoms items using negative a number for nfreq.default() is now exported for use in other packagesstats::quantile())clean_character(), it also keeps in-between spaces nowclean_numeric() now supports currencyfreq() where the precentage of NAs in the header was not calculated right