2016-09-05 2 views
0

Im пытается создать небольшое блестящее приложение, которое будет вызывать файл источника после нажатия кнопки actionButton. Наблюдатель actionButton захватит input$topic и input$num из ui.R, а затем вызовет этот файл source("downloadTweets.R"), для которого требуется, чтобы переменные темы и числа, определенные в среде, работали исправно.Переменные в Shiny для файла с исходными файлами через среду

# Entry shiny server function 
shinyServer(function(input, output) { 

    observeEvent(input$searchButton, { 
    topic <- as.character(input$hashtagClass) 
    num <- as.numeric(input$numTweetsClass) 
    source("downloadTweets_Topic.R") 
    }) 
}) 

Когда я пытаюсь запустить его, появляется сообщение об ошибке, которая выдает что topic значение не было обнаружено после того, как source("downloadTweets_Topic.R") вызова. Я довольно новичок в Shiny, я прочитал документацию по объему и использую функцию reactive(), но я боюсь, что я действительно не понимаю, как это работает. Есть ли способ сделать это или я должен переопределить файл .R, чтобы передать эти значения функции?

Причина, по которой я делаю это, это всего лишь просто повторный код из другого проекта в R Studio, который не является блестящим приложением.

+0

try 'source (" downloadTweets.R ", local = TRUE)', Обратите внимание, что каталог также должен быть указан с помощью 'source'. Здесь I; m, предполагая, что файл 'downloadTweets.R' находится в том же каталоге, что и' server.r' –

+0

. Он показывает ту же проблему, что и «тема» и «num», не определены. Поиск файла отлично работает, когда отображается стек выполнения. –

+1

Без надлежащего примера вам сложно помочь. укажите исходный файл и входные переменные –

ответ

0

Похоже, что input$hashtagClass отсутствует. Выбросьте строку browser() над этой строкой, но внутри выражения наблюдения. Это приведет к тому, что приложение будет запущено, и этот код будет запущен. Вероятно, вы можете решить проблему с помощью вызова req. Посмотрите это с ?req.

Предложение @pork chop добавить local=T в source также важно. Это приведет к переносу любых назначенных переменных в глобальную env.

Смежные вопросы