2014-04-08 63 views
2

我剛剛學習在R中編程並最好地編寫了我的問題,如果它不是很清楚,我可以提前道歉。輕鬆點我。我可以在R Studio控制檯中使用shinyServer中生成的變量嗎

我正在寫一個Shiny程序,並在R的Shiny包中的shinyServer函數中定義了一些變量,但是我希望能夠在控制檯中訪問這些變量以確保我的代碼正在做我'米規劃。因爲它們不是全局變量。

這是我的server.R代碼。我希望能夠在控制檯中看到inFile變量以查看它包含的內容。

shinyServer(function(input, output) { 

    output$picture <- renderPlot({ 

     inFile <- input$file1 
     if (is.null(inFile)) 
     return(NULL) 


     image0 <- readImage(inFile$datapath) 
     image1 <- image0[3265:3825,660:770,1:3] 

     profile_image1 <- rowSums(image0) 
     plot(-1*profile_image1) 
    }) 
}) 
+1

似乎是一個死鏈接... –

回答

0

最簡單的事情是使用CTRL-ENTER運行感興趣的代碼部分,排除任何反應函數。

所以你的情況,你需要定義INFILE是在控制檯測試文件(你不能執行的部分反應函數讀取input$file1否則。

> inFile <- "/my/test/file" 

一旦你有,你可以簡單地選擇並運行括號內的其餘機智:

if (is.null(inFile)) 
    return(NULL) 


    image0 <- readImage(inFile$datapath) 
    image1 <- image0[3265:3825,660:770,1:3] 

    profile_image1 <- rowSums(image0) 
    plot(-1*profile_image1) 

而且,可以讓你在控制檯運行代碼的整個部分,但更重要的是,你可以逐行穿過它(CTRL-。用光標在一行上執行將執行e線)。

現在,這是真正簡單快捷的出發方式。如果你想更仔細地調試(當你編程更多時,你確實需要這樣做),你需要閱讀hrbrmstr在註釋中建議的Lesson 10,並開始在瀏覽器上使用錯誤控制檯,或者使用日誌文件if你使用閃亮的服務器。

0

好吧,最簡單的方法是將全局變量賦值爲<<,當執行完成後,您將能夠在控制檯中操作它們。

0

嘗試使用這樣的事情在你的server.R

observe({ 
    on.exit(
     assign("name of new object in .GlobalENv", 
      expression/object, .GlobalEnv) 
    ) 
}) 

這將在.GlobalEnv創建一個對象與你已經退出應用程序時所定義的名稱。

希望它的作品!

相關問題