我可以在R Studio控制台中使用在shinyServer中生成的变量吗?

时间:2014-04-08 22:30:01

标签: r shiny

我只是学习在R中编程并尽可能地写出我的问题,所以如果不是很清楚,我会事先道歉。对我来说很容易。

我正在编写一个Shiny程序,我在Shiny package for R中的shinyServer函数中定义了一些变量但是我希望能够在控制台中访问这些变量以确保我的代码正在执行我的操作#39; m计划。因为它们并不是全局变量。

这是我的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)
  })
})

3 个答案:

答案 0 :(得分:1)

尝试在服务器中使用类似的东西.R

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

这将在.GlobalEnv中创建一个对象,其中包含退出应用程序时定义的名称。

希望它有效!

答案 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-ENTER,光标在一行上将执行该行)。

现在这是开始时非常简单快捷的方式。如果你想更加认真地进行调试(并且在编写更多内容时确实需要这样做),你需要阅读注释中hrbrmstr建议的Lesson 10并开始使用浏览器上的错误控制台,也许如果使用shiny-server,则为日志文件。

答案 2 :(得分:0)

最简单的方法是使用<<全局分配变量,当执行完成后,您将能够在控制台中操作它们。