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.
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",
...
)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.
The folder containing 'Run.R' and 'R/'. This is the main project directory.
The base folder for storing results. A subfolder with today's date will be created
and accessible via org::project$results_today.
Character vector of folder names inside home containing .R files
to be sourced into the environment.
If TRUE, folders_to_be_sourced is treated as absolute paths.
If FALSE, paths are relative to home.
Source encoding for file paths (only used on Windows)
Target encoding for file paths (only used on Windows)
Additional named arguments for other project folders (e.g., data, raw, etc.)
An environment containing:
All folder locations as named elements
$env: The environment where code was sourced
$results_today: Path to today's results folder
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
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
} # }