2017-08-02 77 views
0

所以我有兩個文本輸出,我有一個變量聲明在其中一個輸出中,我想在另一個輸出中使用相同的變量,但是我在第一個輸出中聲明的變量不能用於第二個輸出所以我必須在兩個輸出中重新聲明相同的變量,導致多次聲明相同事物的混亂代碼。以下是我在談論的一個例子,這是我server.R文件...在R Shiny中對多個輸出使用相同的聲明變量?

output$textoutput1 <- renderText({ 
x <- 1 + (1 * 0.25) 
paste("X is equal to ", x) 
}) 

output$textoutput2 <- renderText({ 
x <- 1 + (1 * 0.25) 
paste("X times 2 is ", x*2) 
}) 

看我怎麼有兩個輸出的x聲明?有沒有辦法可以在服務器文件中將所有變量聲明一次,並在所有輸出中使用它們而不必重新聲明它們?

回答

1

就像在函數中分配一個變量一樣,x只會在您的輸出調用中存在。

也許這些方針的東西:

x <- reactive({1 + (1 * 0.25)}) 

output$textoutput1 <- renderText({ 
paste("X is equal to ", x()) 
}) 

output$textoutput2 <- renderText({ 
paste("X times 2 is ", x()*2) 
}) 

,或者如果x是真正的靜態:

x <- 1 + (1 * 0.25) 

output$textoutput1 <- renderText({ 
paste("X is equal to ", x) 
}) 

output$textoutput2 <- renderText({ 
paste("X times 2 is ", x*2) 
})