Learn R Programming

⚠️There's a newer version (3.4.0) of this package.Take me there.

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: stringr

Files

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] TRUE

Now let's put the file into the directory:

file.move("tmp.txt", "tmp_dir")
#> 1 files moved. 0 failed to move.

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 directories 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 TRUE
remove_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 TRUE

Strings

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] 1000
nth_number(pop, -1)  # last number
#> [1] 512

All the numbers in a string

extract_numbers(pop)
#> [[1]]
#> [1] 1000  488  512

All 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.

Copy Link

Version

Install

install.packages('filesstrings')

Monthly Downloads

811

Version

1.1.0

License

GPL-3

Issues

Pull Requests

Stars

Forks

Maintainer

Rory Nolan

Last Published

July 5th, 2017

Functions in filesstrings (1.1.0)

can_be_numeric

Check if a string could be considered as numeric.
count_matches

Count the number of the matches of a pattern in a string.
extend_char_vec

Pad a character vector with empty strings.
extract_numbers

Extract numbers (or non-numbers) from a string.
locate_braces

Locate the braces in a string.
merge_tables_on_disk

Merge tables on disk.
remove_dirs

Remove directories.
remove_filename_spaces

Remove spaces in file names
create_dirs

Create directories if they don't already exist.
currency

Get the currencies of numbers within a string.
put_in_pos

Put specified strings in specified positions in an otherwise empty character vector.
str_list_remove_empties

Remove empty strings from a character list.
str_nth_instance_indices

Get the indices of the \(n\)th instance of a pattern.
str_with_patterns

Which strings match the patterns?
trim_anything

Trim something other than whitespace
all_equal

before_last_dot

Get the part of a string before the last period.
move_files

Move files around.
nice_file_nums

Make file numbers comply with alphabetical order
paste_different_lengths

Paste vectors/files with different lengths/numbers of lines.
give_ext

Ensure a file name has the intended extension.
group_close

Group together close adjacent elements of a vector.
singleize

Remove back-to-back duplicates of a pattern in a string.
str_after_nth

Text before or after \(n\)th occurrence of pattern.
filesstrings-defunct

Defunct functions
PasteCollapseListElems

Deprecated functions
nice_nums

Make string numbers comply with alphabetical order
paste_collapse_list_elems

Apply paste collapse to each element of a list.
str_elem

Extract a single character of a string, using its index.
str_list_nth_elems

Get the nth element of each vector in a list of numeric or character vectors.
unitize_dirs

Put files with the same unit measurements into directories.
str_split_camel_case

Split a string based on camelcase
str_to_vec

Convert a string to a vector of characters
remove_quoted

Remove the quoted parts of a string.
rename_with_nums

Replace file names with numbers.
str_paste_elems

Extract bits of a string and paste them together
str_split_by_nums

Split a string by its numeric charachters.