The goal of regexcite is to play around with some regex functions and learn how to build a package.
You can install the development version of regexcite from GitHub with:
# install.packages("devtools")
devtools::install_github("naokoski/regexcite")
A fairly common task when dealing with strings is the need to split a
single string into many parts. This is what base::strplit()
and
stringr::str_split()
do.
(x <- "alfa,bravo,charlie,delta")
#> [1] "alfa,bravo,charlie,delta"
strsplit(x, split = ",")
#> [[1]]
#> [1] "alfa" "bravo" "charlie" "delta"
stringr::str_split(x, pattern = ",")
#> [[1]]
#> [1] "alfa" "bravo" "charlie" "delta"
Notice how the return value is a list of length one, where the first element holds the character vector of parts. Often the shape of this output is inconvenient, i.e. we want the un-listed version.
That’s exactly what regexcite::str_split_one()
does.
library(regexcite)
str_split_one(x, pattern = ",")
#> [1] "alfa" "bravo" "charlie" "delta"
Use str_split_one()
when the input is known to be a single string. For
safety, it will error if its input has length greater than one.
str_split_one()
is built on stringr::str_split()
, so you can use its
n
argument and stringr’s general interface for describing the
pattern
to be matched.
str_split_one(x, pattern = ",", n = 2)
#> [1] "alfa" "bravo,charlie,delta"
y <- "192.168.0.1"
str_split_one(y, pattern = stringr::fixed("."))
#> [1] "192" "168" "0" "1"
This is a basic example which shows you how to solve a common problem:
library(regexcite)
## basic example code
What is special about using README.Rmd
instead of just README.md
?
You can include R chunks like so:
summary(cars)
#> speed dist
#> Min. : 4.0 Min. : 2.00
#> 1st Qu.:12.0 1st Qu.: 26.00
#> Median :15.0 Median : 36.00
#> Mean :15.4 Mean : 42.98
#> 3rd Qu.:19.0 3rd Qu.: 56.00
#> Max. :25.0 Max. :120.00
You’ll still need to render README.Rmd
regularly, to keep README.md
up-to-date. devtools::build_readme()
is handy for this. You could also
use GitHub Actions to re-render README.Rmd
every time you push. An
example workflow can be found here:
https://github.com/r-lib/actions/tree/v1/examples.
You can also embed plots, for example:
In that case, don’t forget to commit and push the resulting figure files, so they display on GitHub and CRAN.