R/group2csv.R

Defines functions group2csv

Documented in group2csv

# group2csv------------------------------
# Documentation
#' Split a tibble/dataframe into CSV by "group" variable
#' @description Split a tibble/dataframe by "group" variable, then save in a subfolder as CSV.
#' @param data Dataframe with at least 1 column - corresponding to a "group".
#' @param group Grouping variable (must be unique values) who will recieve unique email.
#' @param subfolder Folder within working directory (e.g. string entered into here::here()) where CSV will be stored. Default = "folder_csv".
#' @param file_prefix String to be prefixed to "group" when naming CSV file.
#' @param file_suffix String to be suffixed to "group" when naming CSV file.
#' @return Dataframe of group AND csv file path ("file").
#' @import dplyr
#' @import readr
#' @import here
#' @import tibble
#' @importFrom purrr map
#' @export

# Function
group2csv <- function(data, group, subfolder = "folder_csv", file_prefix = "", file_suffix = ""){

  dir.create(subfolder, showWarnings = FALSE)

  data <- data %>%
    dplyr::mutate(group = dplyr::pull(., group)) %>%
    dplyr::filter(is.na(group)==F)

  data_group <- data %>%
    dplyr::group_by(group) %>%
    dplyr::summarise(file = paste0(subfolder, "/", file_prefix, unique(group), file_suffix, ".csv"))


  data %>%
    # Split by group into separate datasets
    dplyr::group_split(group) %>%

    purrr::map(function(x){readr::write_csv(x = x,
                                            path = paste0(subfolder, "/",
                                                          file_prefix, unique(x$group),
                                                          file_suffix, ".csv"))})

  return(data_group)}
kamclean/collaborator documentation built on Nov. 17, 2023, 3:52 a.m.