Сохранение набора данных через функцию, но впоследствии он не загружается - PullRequest
0 голосов
/ 20 февраля 2020

Я создал функцию, которая считывает некоторые текстовые данные из определенного файла, выполняет некоторые манипуляции (здесь опущены), а затем сохраняет каждый измененный кадр данных в этом списке как .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 для загрузки результатов в будущем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...