--- title: "Working with multiple RCDF files" output: rmarkdown::html_vignette vignette: > %\VignetteIndexEntry{merging-rcdf} %\VignetteEngine{knitr::rmarkdown} %\VignetteEncoding{UTF-8} --- ```{r, include = FALSE} knitr::opts_chunk$set( collapse = TRUE, comment = "#>" ) ``` There are two common scenarios when working with multiple RCDF files: 1. **Load several files into R at once** — useful when you want to analyse data from multiple files side by side. Tables with the same name are stacked automatically. 2. **Merge files into a new RCDF file** — useful when you want to permanently combine files and share or archive the result as a single encrypted file. --- ## Scenario 1 — Load multiple files into R Pass a character vector of file paths (or a folder path) to `read_rcdf()`. Provide matching vectors of keys and passwords if the files were encrypted with different keys: ```{r, eval=FALSE} data <- read_rcdf( path = c( "path/to/file/01.rcdf", "path/to/file/02.rcdf", "path/to/file/03.rcdf" ), decryption_key = c( "keys/01-private-key.pem", "keys/02-private-key.pem", "keys/03-private-key.pem" ), password = c( "password01", "password02", "password03" ) ) ``` > **Requirements for stacking to work:** > - Each RCDF file must contain tables with the same names and column structure. > - Passwords must correspond positionally to their decryption keys. --- ## Scenario 2 — Merge files into a new RCDF file `merge_rcdf()` reads multiple RCDF files, stacks their tables, and saves the result as a brand-new encrypted RCDF file. This is handy for creating an archive or distributing a combined dataset to collaborators: ```{r, eval=FALSE} merge_rcdf( rcdf_files = c( "path/to/file/01.rcdf", "path/to/file/02.rcdf", "path/to/file/03.rcdf" ), decryption_key = c( "keys/01-private-key.pem", "keys/02-private-key.pem", "keys/03-private-key.pem" ), password = c( "password01", "password02", "password03" ), merged_file_path = "path/to/merged.rcdf" ) ``` The merged file is encrypted with its own key, which you supply via the `pub_key` argument (see `?merge_rcdf` for all options). --- For more on reading single files and exporting data, see `vignette("rcdf")`.