Я работаю над очисткой данных нескольких источников данных. Ради этого вопроса я создал пример примера. 3, надеюсь, простых вопроса
- Каков наилучший способ создания «основной функции», которая вызывает правильную функцию очистки и возвращает запрашиваемую
df
? У меня есть один способ сделать это ниже - Нужно ли мне создавать отдельную мастер-функцию, если я хочу связать строку (я предполагаю, используя
purrr::map_dfr
) результаты в аргументе типа? Ex. Получить df
для всех store
вариантов, для type = "snack"
? - Допустим, я хочу использовать
write_csv
, чтобы написать отдельный .csv
файл для каждого store
и type
, это аргумент, который я мог бы добавить в функцию для достижения вопроса 2? Как мне перейти к следующему выбору «store», если нет строк / ошибок без записи пустого файла .csv
?
Пример функций:
library(tidyverse)
# function 1
get_focus_brands <- function(store = c("cinnabon", "auntie annes"),
type = c("snack", "drinks"),
clean_columns = TRUE){
df <- tibble(
ITEM_NAME = c("cinnabon","cookie"),
price = c(3.99, 2.99)
)
if (clean_columns == TRUE) {
df <- df %>% janitor::clean_names()
}
df
}
# function 2
get_bk <- function(type = c("snack", "drinks"),
clean_columns = TRUE){
df <- tibble(
ITEM_NAME = c("soft serve vanilla","cookie"),
price = c(3.99, 2.99)
)
if(clean_columns == TRUE){
df <- df %>% janitor::clean_names()
}
df
}
# master function that calls get function based on store name choise
get_fast_food <- function(store, ...){
switch(store,
"cinnabon" =
get_focus_brands(...),
"auntie annes" =
get_focus_brands(...),
"burger king" =
get_bk(...))
}
df <- get_fast_food(store = "cinnabon",
type = "snack",
clean_columns = TRUE)
df