filesstrings
Convenient functions for moving files, deleting directories, and a variety of string operations that facilitate manipulating file names and extracting information from strings.
Installation
To install the release version (recommended) from CRAN, in R, enter
install.packages("filesstrings")To install the development version, in R, first install devtools via install.packages("devtools"). Then enter
devtools::install_github("rorynolan/filesstrings")Use
First let's load the library:
library(filesstrings)#> Loading required package: stringrFiles
Move files around
I find it bizarre that base R has no file.move. To move a file, you have to unintuitively rename it. filesstrings provides file.move(files, destinations). This function has the nice feature that if you try to move files to a directory that doesn't exist, it creates the directory first and then puts the files inside. Let's create a directory and a file:
dir.create("tmp_dir")
file.create("tmp.txt")#> [1] TRUENow let's put the file into the directory:
file.move("tmp.txt", "tmp_dir")#> 1 file moved. 0 failed.Delete Directories
To delete directories with base R, one has to use unlink(..., recursive = TRUE). The filesstrings package gives you dir.remove() which does the same job.
dir.remove("tmp_dir")#> 1 directory deleted. 0 failed to delete.Remove spaces from file names
"A space in your file name is a hole in your soul." - Jenny Bryan
remove_filename_spaces(replacement = "_") replaces them all with underscores for all files in a directory. By default, they are replaced with nothing.
file.create(c("file 1.txt", "file 2.txt"))#> [1] TRUE TRUEremove_filename_spaces(pattern = "txt$", replacement = "_")#> 2 files renamed. 0 failed to rename.list.files(pattern = "txt$")#> [1] "file_1.txt" "file_2.txt"file.remove(list.files(pattern = "txt$")) # clean up#> [1] TRUE TRUEStrings
The nth number in a string
I often want to get the first, last or nth number in a string.
pop <- "A population of 1000 comprised of 488 dogs and 512 cats."
nth_number(pop, 1)#> [1] 1000nth_number(pop, -1) # last number#> [1] 512All the numbers in a string
extract_numbers(pop)#> [[1]]
#> [1] 1000 488 512All the non-numbers in a string
extract_non_numerics(pop)#> [[1]]
#> [1] "A population of " " comprised of " " dogs and "
#> [4] " cats."Trim anything (not just whitespace)
stringr's str_trim just trims whitespace. What if you want to trim something else? Now you can trim_anything().
trim_anything("__rmarkdown_", "_")#> [1] "rmarkdown"Contribution
Contributions to this package are welcome. The preferred method of contribution is through a github pull request. Feel free to contact me by creating an issue. Please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms.