Я создал функцию, которая считывает некоторые текстовые данные из определенного файла, выполняет некоторые манипуляции (здесь опущены), а затем сохраняет каждый измененный кадр данных в этом списке как .RData
. Я проверил, что функция выполняет свою работу. Однако при повторной загрузке вывода в RStudio команда load
выполняется без ошибок, но в моем окружении нет нового объекта.
Есть ли возможные исправления?
f <- function(directory_input, directory_output, par1, par2){
library(tidyverse)
library(readxl)
if(dir.exists(directory_output) == F) {
dir.create(directory_output)
}
key <- data.frame(par= as.character(paste0(0, par1, par2)))
paths <- key %>% mutate(
filepath_in = file.path(directory_input, paste0(par, '.txt'), sep = ''),
filepath_out = file.path(directory_output, paste0(par, '.RData'), sep = '')
)
filepath_in <- paths$filepath_in
filepath_out <- paths$filepath_out
DF <- filepath_in %>% map( ~ .x %>% read.delim2(., encoding = 'Latin-1', nrows = 1000))
map2(DF, filepath_out, ~ .x %>% save(file = .y))
}
EDIT
После комментариев, здесь немного больше контекста:
Мне было поручено написать функцию, которая будет частью будущего пакета. Функция не создает новый фрейм данных, а только сохраняет его на компьютере. Я разработал для того, чтобы облегчить пользователю в случае, если он манипулирует несколькими наборами данных.
С другой стороны, естественно предположить, что пользователь будет использовать эти наборы данных в будущем наиболее интуитивно понятным способом , используя только load
. Вот почему не было бы идеально иметь решение, которое требует использования assign
для загрузки результатов в будущем.