knitr::opts_chunk$set(echo = TRUE, comment = "#>")
First let's load the library:
Move files around
I find it bizarre that base R has no
file.move. To move a file, you have to unintuitively rename it.
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:
Now let's put the file into the directory:
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.
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")) remove_filename_spaces(pattern = "txt$", replacement = "_") list.files(pattern = "txt$") file.remove(list.files(pattern = "txt$")) # clean up
Messed up file numbering
The microscope I use numbers files with 3 numbers by default, i.e.
file002.tif and so on. This is a problem when the automatic numbering passes 1000, whereby we have
file1000.tif. What's the problem with this? Well, sometimes you need alphabetical order to reflect the true order of your files. These file numbers don't satisfy this requirement:
file.names <- c("file999.tif", "file1000.tif") sort(file.names)
file1000.tif comes before
file999.tif in alphabetical order. The function
nice_nums() returns the names that we'd like them to have:
nice_file_nums applies such renaming to all the files in an entire directory. It wraps
The name of a file without the extension
Ensure that a file name has a given extension
Add a file extension if needed:
If the file name has the correct extension already, it's left alone:
Change a file extension:
give_ext("abc.csv", "txt") # tack the new extension onto the end give_ext("abc.csv", "txt", replace = TRUE) # replace the current extension