It is quite impressive how, since more or less ten years, more and more people at our research institute Kompetenzzentrum Wasser Berlin began to use the programming language R to support their daily data-related work. As a result, we are currently hosting more than one thousand R scripts in our internal version control system.
It is difficult to keep control over so many files. Therefore, this
package contains a function that aims at giving an overview of R script
files and the functions defined within these files. Use the function
report_about_r_scripts()
to create an R Markdown document
about all the R script files below a certain root directory:
With the (private) helper functions
github_package_path()
and
github_package_files()
that are also contained in the
package, we can also report on the R files that are contained in an R
package hosted on GitHub. For example,
we can have a look at the files that are contained in this package. They
are available in the repository kwb.fakin on our GitHub account:
repo <- "kwb-r/kwb.fakin"
kwb.fakin::report_about_r_scripts(
root = kwb.fakin:::github_package_path(repo, "R"),
scripts = kwb.fakin:::github_package_files(repo, "R"),
show = FALSE
)
We set show
to FALSE
in order to prevent
that the created HTML file is opened in a browser.
A shortcut to the above call is:
It is up to you to compare with what the great guys do. Try e.g.
To find out what R-packages are used in our R-scripts, you may use
the function get_names_of_used_packages
of our
kwb.code
package:
#devtools::install_github("kwb-r/kwb.code")
# Define the top level directory in which to look recursively for R-scripts
root_dir = "~/Desktop/R-Development/RScripts"
# Get the names of the packages that are loaded in the scripts with "library()"
packages <- kwb.code::get_names_of_used_packages(root_dir)
# Print the script names
writeLines(packages)
The base function file.info
can be used to get detailed
information about a file. The package kwb.fakin
contains a
function that calls this function on all files that are below a certain
root folder:
# Define the root directory
root_dir <- system.file(package = "kwb.fakin")
# Get information on all files in this directory
file_info <- fakin.path.app::get_recursive_file_info(root_dir)
# Get information on R scripts only...
file_info_scripts <- fakin.path.app::get_recursive_file_info(root_dir, "[.]R$")
print(utils::sessionInfo())
# Show the structure of the result
str(structure(file_info_scripts, class = "data.frame"))