This function initializes a new R project by setting up folder locations and sourcing code files. It creates a standardized project structure with separate locations for code, results, and data. Results are automatically organized by date, and code can be sourced from specified directories.
Usage
initialize_project(
env = new.env(),
home = NULL,
results = NULL,
folders_to_be_sourced = "R",
source_folders_absolute = FALSE,
encode_from = "UTF-8",
encode_to = "latin1",
...
)
Arguments
- env
The environment that the code will be sourced into. Use
.GlobalEnv
to source code into the global environment. If a different environment is provided, all functions will be sourced into that environment.- home
The folder containing 'Run.R' and 'R/'. This is the main project directory.
- results
The base folder for storing results. A subfolder with today's date will be created and accessible via
org::project$results_today
.- folders_to_be_sourced
Character vector of folder names inside
home
containing .R files to be sourced into the environment.- source_folders_absolute
If
TRUE
,folders_to_be_sourced
is treated as absolute paths. IfFALSE
, paths are relative tohome
.- encode_from
Source encoding for file paths (only used on Windows)
- encode_to
Target encoding for file paths (only used on Windows)
- ...
Additional named arguments for other project folders (e.g., data, raw, etc.)
Value
An environment containing:
All folder locations as named elements
$env
: The environment where code was sourced$results_today
: Path to today's results folder
Details
The function performs several key operations:
Creates necessary directories if they don't exist
Sets up date-based results organization
Sources all .R files from specified directories
Handles path encoding for cross-platform compatibility
Maintains a mirror of settings in
org::project
Examples
if (FALSE) { # \dontrun{
# Initialize a new project
org::initialize_project(
home = paste0(tempdir(), "/git/analyses/2019/analysis3/"),
results = paste0(tempdir(), "/dropbox/analyses_results/2019/analysis3/"),
raw = paste0(tempdir(), "/data/analyses/2019/analysis3/")
)
# Access project settings
org::project$results_today # Today's results folder
org::project$raw # Raw data folder
} # }