2016-06-16 5 views
0

내 ui.R를 찾을 수없는 개체를 '입력'이오류 : R 반짝 응용 프로그램에

library(shiny) 
library(Sim.DiffProc) 

shinyUI(fluidPage(
     titlePanel("Sliders"), 

     sliderInput(inputId = "theta",label="Theta:", 
        min=1, max=50, value=5), 

     plotOutput("SDE") 
    )) 

보이는 그리고 server.R는 다음

library(shiny) 
library(Sim.DiffProc) 


shinyServer(function(input, output) 
{ 
    result<-reactive({ 
    f<-expression(x*(1-(x/1000))^input$theta*0.5) 
    g<-expression(x*(1-(x/1000))^input$theta*0.2) 
    snssde1d(drift=f,diffusion=g, M=5, x0=100) 
    }) 

    output$SDE<-renderPlot({ 
    plot(result(), plot.type="single", col="lightgrey")}) 

}) 

나는 항상 다음을 얻을 수있다 오류 : 'input'개체를 찾을 수 없습니다. 문제가 무엇인지 알 수 없습니다. 왜 내 세타에 반응하지 않는거야? 도움 주셔서 감사합니다.

+0

드리프트 계수 : 두 변수 t와 x의 표현. (이것은 f입니다.) 확산 계수 : 두 변수 t와 x (이것은 g입니다)의 표현 – sanyi14ka

+0

R에서 프로그램이 올바르게 작동합니다. Shiny에서 올바른 방법으로 구현할 수 없습니다. – sanyi14ka

+0

문제는 Rshiny가 아닙니다. 'expression' 함수의 사용법입니다. expression 함수는'input $ theta '를 평가하지 않습니다. 표현식 함수가 받아들이는 입력을 이해해야합니다. 예를 들어'input $ theta '를 대체하면 5. 출력을 생성합니다. – user5249203

답변

0

그래서 내가 말했듯이 문제는 Rshiny가 아닙니다. expression의 사용법입니다.

당신이 여기서 뭘하고있는 것은 기본적으로 값을 입력 $ 세타를 대체하지 않고 동일한 표현을 출력

expression(x*(1-(x/1000))^input$theta*0.2) 

5.

당신이 필요가있는 무엇을

f <- as.expression(bquote(x*(1-(x/1000))^.(input$theta)*0.2)) 

#bquote evaluates the expression enclosed in .() 
이하

이 출력은

expression(x * (1 - (x/1000))^5 * 0.2) 

나는 당신의 문제를 해결하기 바란다.

+0

대단히 감사합니다. 이제는 훌륭하게 작동합니다! – sanyi14ka

관련 문제