Немного предыстории, чтобы вы могли понять проблему / окружающую среду:
Я создаю сложное блестящее приложение. Первый шаг - ввести пользовательский ввод: он берет список возможных вариантов и фильтрует большие данные, установленные на основе пользовательского интерфейса. Оттуда он берет этот локально отфильтрованный набор данных и должен вызвать функцию для выполнения целой группы вычислений, а затем вернуть результаты.
Это то, что я хотел бы сделать: я хочу, чтобы приложение и эта функция были в отдельных скриптах, так как одна функция содержит более 300 строк кода. В настоящее время они находятся в отдельных сценариях, однако они еще не связаны друг с другом.
Структура моего server
в блестящем это:
output$plot <- renderPlot({
# Filter based on UI to result in a data set called d2
# Here I would like to call my function
Структура моей функции:
data <- fread("local_path.csv")
my_function <- function(){
# A ton of calculations using data set loaded above
}
# Call to function
my_function()
Прямо сейчас, если я зайду в свой server
и вызову source("my_function_script.R")
, скрипт будет работать с данными, которые я загружаю в этом скрипте.
У меня вопрос, как мне отправить данные в другой скрипт? Я могу легко запустить исходную строку и затем вызвать функцию в блестящем приложении, но как я могу отправить отфильтрованные данные другому сценарию?
Другая вещь, о которой следует помнить, это то, что после выполнения этих вычислений он создает график. Если пользователь теперь хочет изменить свои входные данные, приложение позволяет им это сделать, затем он повторно фильтрует данные и должен снова вызвать функцию, чтобы Пересчитайте все, чтобы иметь возможность построить новый график.
Я знаю, что одним из решений (хотя и не очень хорошим) будет вывод csv после фильтрации данных, а затем установка этого пути к файлу в моем другом сценарии, так как это огромный кусок данных (даже с фильтрацией) это сильно замедлит процесс.
Любые мысли и помощь приветствуются! Спасибо!