Learn R Programming

rappdirs

rappdirs is a port of appdirs to R. It lets you find the appropriate directory to save caches, logs, and data, on Linux, Mac, and Windows. It allows you to store files that need to shared across R sessions in a way that aligns with the CRAN policies.

Motivation

What directory should your app use for storing user data? If running on Mac OS X, you should use:

~/Library/Application Support/<AppName>

If on Windows (at least English Win XP) that should be:

C:\Documents and Settings\<User>\Application Data\Local Settings\<AppAuthor>\<AppName>

or possibly:

C:\Documents and Settings\<User>\Application Data\<AppAuthor>\<AppName>

for roaming profiles but that is another story.

On Linux (and other Unices) the dir, according to the XDG spec (and subject to some interpretation), is either:

~/.config/<AppName>     

or possibly:

~/.local/share/<AppName>

Usage

This kind of thing is what rappdirs is for. rappdirs will help you choose an appropriate:

  • user data dir (user_data_dir())
  • user config dir (user_config_dir())
  • user cache dir (user_cache_dir())
  • site data dir (site_data_dir())
  • user log dir (user_log_dir())

For example, on Mac:

library(rappdirs)
appname <- "SuperApp"
appauthor <- "Acme"
user_config_dir(appname, appauthor)
#> [1] "~/Library/Application Support/SuperApp"
user_data_dir(appname, appauthor)
#> [1] "~/Library/Application Support/SuperApp"
site_data_dir(appname, appauthor)
#> [1] "/Library/Application Support/SuperApp"
user_cache_dir(appname, appauthor)
#> [1] "~/Library/Caches/SuperApp"
user_log_dir(appname, appauthor)
#> [1] "~/Library/Logs/SuperApp"

Copy Link

Version

Install

install.packages('rappdirs')

Monthly Downloads

1,003,490

Version

0.3.3

License

MIT + file LICENSE

Issues

Pull Requests

Stars

Forks

Maintainer

Last Published

January 31st, 2021

Functions in rappdirs (0.3.3)

user_cache_dir

Path to user cache directory
site_data_dir

Path to shared data/config directories
rappdirs-package

rappdirs: Application Directories: Determine Where to Save Data, Caches, and Logs
user_log_dir

Path to user log directory
user_data_dir

Path to user config/data directories
app_dir

Record app information in a convenient object