R basename() Function

The basename() is a base R function that extracts the last component (or the ‘base name’) of a file or directory path and returns the name of the file or directory. So, if you have a path like “/Users/krunallathiya/Desktop/Code/pypro/data.pdf, basename() would return “data.pdf.

The opposite function of basename() is dirname(), which gives the directory part of the path.

Syntax

basename(path)

Parameters

Name Value
path It takes a path as input and strips away the directory parts, leaving just the filename.

Getting a file from the file path

Let’s define a file path of the current working directory + file name.

Working of basename() Function in R

dir <- "/Users/krunal/Desktop/code/R/Pro.R"

basename(dir)

# [1] "Pro.R"

Getting a directory from the file path

R basename() for directory

What if we just pass the directory path and do not include the file? We will pass the directory path in which the file is residing. How about that? What will the function return? Well, this function will return the last directory part of the full path. So, it is not just for getting files but also for getting directories.

dir <- "/Users/krunal/Desktop/code/R/"

basename(dir)

Output

[1] "R"

Relative Paths

R basename() with relative path

The basename() function works well with relative paths.

basename("../scripts/data.R")

# [1] "data.R"

Multiple Paths (Vectorized)

Let’s take a vector of file paths and pass that vector to the function.

paths <- c("/Documents/file1.txt", "/var/log/documents/file2.log")

basename(paths)

# [1] "file1.txt" "file2.log"

That’s it!

Leave a Comment