Determine the path of the executing script. Compatible with a few
popular GUIs: ‘Rgui’, ‘RStudio’, ‘VSCode’,
‘Jupyter’, and
‘Rscript
’
(shell). Compatible with several functions and packages:
source()
, sys.source()
, debugSource
()
in ‘RStudio’, compiler::loadcmp()
, box::use()
, knitr::knit()
, plumber::plumb()
, shiny::runApp()
, targets, and testthat::source_file()
.
tools:::Rd_package_author("this.path")
Maintainer: tools:::Rd_package_maintainer("this.path")
The most important functions from this.path are
this.path()
, this.dir()
, here()
,
and this.proj()
:
this.path()
returns the normalized path of the script
in which it is written.
this.dir()
returns the directory of
this.path()
.
here()
constructs file paths against
this.dir()
.
this.proj()
constructs file paths against the project
root of this.dir()
.
this.path also provides functions for constructing and manipulating file paths:
path.join()
, basename2()
, and
dirname2()
are drop in replacements for
file.path()
, basename()
, and
dirname()
which better handle drives and
network shares.
splitext()
, removeext()
,
ext()
, and ext<-()
split a path into root and
extension, remove a file extension, get an extension, or set an extension
for a file path.
path.split()
, path.split.1()
, and
path.unsplit()
split the path to a file into components.
relpath()
, rel2here()
, and
rel2proj()
turn absolute paths into relative paths.
New additions to this.path include:
with_site.file()
and with_init.file()
allow this.path()
and related to be used in the site-wide startup
profile file or a user profile.
LINENO()
returns the line number of the executing
expression.
set.sys.path()
implements this.path()
for
any source()
-like functions outside of source()
, sys.source()
, debugSource
()
in ‘RStudio’, compiler::loadcmp()
, box::use()
, knitr::knit()
, plumber::plumb()
, shiny::runApp()
, targets, and testthat::source_file()
.
shFILE()
looks through the command line arguments,
extracting FILE from either of the following: -f
FILE or --file=FILE