2016-09-05 2 views
0

나는 actionButton을 누르면 소스 파일을 호출 할 작은 반짝이는 응용 프로그램을 만들려고합니다. actionButton 옵저버는 ui.R에서 input$topicinput$num을 캡처 한 다음 올바르게 정의 된 환경에서 정의 된 topic 및 num 변수가 필요한 source("downloadTweets.R") 파일을 호출합니다.환경 변수를 통해 소스 파일에 반짝이는 변수들

# 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") 
    }) 
}) 

내가 그것을 실행하려고하면 source("downloadTweets_Topic.R") 호출이되면 topic 값이 발견되지 않았 음을 출력하는 오류 메시지가있다. 나는 Shiny에 상당히 익숙하다. 나는 scope 문서를 읽고 reactive() 함수를 사용한다. 그러나 나는 그것이 어떻게 작동하는지 정말로 알지 못한다. 이 작업을 수행 할 수있는 방법이 있거나 이러한 값을 함수에 전달할 수 있도록 .R 파일을 다시 구현해야합니까?

내가 이런 식으로하는 이유는 Shiny 앱이 아닌 R Studio의 다른 프로젝트의 코드 재사용일뿐입니다.

+0

'source ("downloadTweets.R", local = TRUE)'시도하십시오. 디렉토리도'source '로 지정해야합니다. 여기서'downloadTweets.R' 파일이'server.r'와 같은 디렉토리에 있다고 가정합니다. –

+0

'topic'과 'num'과 같은 문제가 정의되어 있지 않습니다. 실행 스택이 표시되면 파일 소싱이 정상적으로 작동합니다. –

+1

적절한 예가 없으면 도움을 받기가 어렵습니다. 소스 파일과 입력 변수를 제공하십시오. –

답변

0

input$hashtagClass이 누락 된 것 같습니다. 그 라인 위의 browser() 라인을 던져라.하지만 observe 표현식 안에. 그러면 앱이 실행되고이 코드가 실행될 때 중단 점에 빠질 수 있습니다. req 전화로 문제를 해결할 수 있습니다. ?req으로 찾으십시오.

@pork 찹의 제안은 local=Tsource을 추가하는 것도 중요합니다. 할당 된 모든 변수를 전역 env에 넣습니다.

관련 문제