---
title: "tools"
output: rmarkdown::html_vignette
vignette: >
%\VignetteIndexEntry{tools}
%\VignetteEngine{knitr::rmarkdown}
%\VignetteEncoding{UTF-8}
---
```{r, include = FALSE}
knitr::opts_chunk$set(
collapse = TRUE,
comment = "#>"
)
```
```{r setup}
library(thinkr)
```
## replace_pattern(): Replace all occurencies of a `pattern` by `replacement`
Scan a dataframe and return it with all occurencies of a `pattern` changed to `replacement`, keeping the same format.
```{r}
dataset <- data.frame(
col_a = as.factor(letters)[1:7],
col_b = letters[1:7],
col_c = 1:7,
col_d = paste0(letters[1:7], letters[1:7]),
stringsAsFactors = FALSE)
# Show original dataset
dataset
# replace pattern
replace_pattern(dataset, "a", 'XXX-')
```
Exact matching with argument `exact`
```{r}
replace_pattern(dataset, "a", 'XXX-', exact = TRUE)
```
## is_likert(): Verify levels of a factor vector
Test that the levels of a factor `vec` are all to be found in the character vector `lev`.
```{r, error=TRUE, message=TRUE}
## returns TRUE because all levels of iris$species are in c("setosa", "versicolor", "virginica")
is_likert(iris$Species, c("setosa", "versicolor", "virginica"))
## returns TRUE because all levels of iris$species are in c("setosa", "versicolor", "virginica", "banana"), even though there is actually no level "banana"
# A message is printed
is_likert(iris$Species, c("setosa", "versicolor", "virginica", "banana"))
## returns FALSE because the "virginica" level of iris$species is missing
is_likert(iris$Species, c("setosa", "versicolor"))
## returns an error
is_likert(iris$Species, c(1, 2))
## returns no error as the numeric is coerced to a character.
is_likert(iris$Species, c("setosa", 2))
```
> Warnings: is-likert does not test whether the levels of `vec` are a likert scale as in psychometry. See for example.