R在闪亮的应用程序没有错误后停止脚本
R stops script after shiny app without error
这是我第一次在这里发布问题,如果我过于含糊或不清楚,请原谅我。我在 R 中 运行ning 一个脚本,它以一个闪亮的应用程序开头,并且在使用 Windows 时这个脚本 运行 是完美的。但是,当在 Mac 上时,脚本似乎会在闪亮的应用程序之后捕获某些命令。这是我的脚本的一个最小示例。我包含了完整的闪亮应用程序以防相关。
library(shiny)
master_metatable=read.csv('metadata.csv')
#begin shiny app
select_tables=runApp(list(
ui=fluidPage(
titlePanel("Data Repository v0.01"),
fluidRow(
column(3,
checkboxGroupInput("phase_selection",
label = "Choose Phase",
choices = c("Phase I","Phase II","Phase III"),
selected = "Phase I")),
column(3,
uiOutput("ui")),
column(3,
actionButton("done","Done"))
)
),
server=function(input,output){
output$ui=renderUI({
tables=unique(master_metatable$measure[which(master_metatable$cohort==input$phase_selection)])
checkboxGroupInput("table_selection",
label = "Tables",
tables)
})
output$text1=renderText({
paste0("You have selected ",input$table_selection)
})
observeEvent(input$done, stopApp(list(input$phase_selection,
input$table_selection)))
}
))
#end shiny app
#test print 1
print("test1")
testcsv=read.csv('metadata.cv')
#test print 2
print("test2")
library(tcltk)
filepath=tk_choose.dir()
...等等
因此,例如,当我 运行 我的 Mac 上的这个脚本时,它完成闪亮的应用程序,打印 'test1',然后开始读取 testcsv 但停止。它不会产生错误或警告消息,甚至不会给出“+”表示我遗漏了“)”或其他内容。它只是停止,不读入 table,并且永远不会继续执行脚本的其余部分。它也没有被冻结,它就像它到达了脚本的末尾一样。请注意,这与我在脚本顶部导入的 csv 相同,因此我的语法或 csv 文件没有任何问题。但是,如果我先 运行 脚本的闪亮应用程序部分,然后 运行 脚本的其余部分,一切都会完美无缺!换句话说,如果我一次性 运行 整个脚本,它会捕捉到,但如果我只突出显示闪亮的应用程序并 运行 它,然后突出显示其他所有内容并 运行 它,它作品。同样,这种异常只发生在 Macs 上(我尝试了两个 Macs 都 运行ning Yosemite),并且脚本在 Windows 上完美运行(两者都64 位和 32 位)。
此外,在我的 Mac 上 运行 整个脚本时,它会成功地 运行 应用程序并读取 csv,但会捕捉到一些东西否则在脚本的后面。它似乎只捕捉与环境相关的命令(即 read.csv、read.table、tk_choose.dir)。它对基本的处理命令从来没有任何问题。一旦它甚至毫无问题地完成了整个脚本,但下次我 运行 它时,它再次出现 read.csv。
我也不认为这个问题与我机器的处理限制有关,因为我的计算机上 运行 要求更高的 R 脚本没有问题。
有什么想法吗?
我终于在GitHub forum上找到了答案。它与 RStudio 中的查看器窗格有关。要在 Mac 上使用,我将 'options(shiny.launch.browser = TRUE)' 添加到我的脚本的开头,以便它使用我计算机的默认 Web 浏览器作为查看器窗格而不是 R 的。
这是我第一次在这里发布问题,如果我过于含糊或不清楚,请原谅我。我在 R 中 运行ning 一个脚本,它以一个闪亮的应用程序开头,并且在使用 Windows 时这个脚本 运行 是完美的。但是,当在 Mac 上时,脚本似乎会在闪亮的应用程序之后捕获某些命令。这是我的脚本的一个最小示例。我包含了完整的闪亮应用程序以防相关。
library(shiny)
master_metatable=read.csv('metadata.csv')
#begin shiny app
select_tables=runApp(list(
ui=fluidPage(
titlePanel("Data Repository v0.01"),
fluidRow(
column(3,
checkboxGroupInput("phase_selection",
label = "Choose Phase",
choices = c("Phase I","Phase II","Phase III"),
selected = "Phase I")),
column(3,
uiOutput("ui")),
column(3,
actionButton("done","Done"))
)
),
server=function(input,output){
output$ui=renderUI({
tables=unique(master_metatable$measure[which(master_metatable$cohort==input$phase_selection)])
checkboxGroupInput("table_selection",
label = "Tables",
tables)
})
output$text1=renderText({
paste0("You have selected ",input$table_selection)
})
observeEvent(input$done, stopApp(list(input$phase_selection,
input$table_selection)))
}
))
#end shiny app
#test print 1
print("test1")
testcsv=read.csv('metadata.cv')
#test print 2
print("test2")
library(tcltk)
filepath=tk_choose.dir()
...等等
因此,例如,当我 运行 我的 Mac 上的这个脚本时,它完成闪亮的应用程序,打印 'test1',然后开始读取 testcsv 但停止。它不会产生错误或警告消息,甚至不会给出“+”表示我遗漏了“)”或其他内容。它只是停止,不读入 table,并且永远不会继续执行脚本的其余部分。它也没有被冻结,它就像它到达了脚本的末尾一样。请注意,这与我在脚本顶部导入的 csv 相同,因此我的语法或 csv 文件没有任何问题。但是,如果我先 运行 脚本的闪亮应用程序部分,然后 运行 脚本的其余部分,一切都会完美无缺!换句话说,如果我一次性 运行 整个脚本,它会捕捉到,但如果我只突出显示闪亮的应用程序并 运行 它,然后突出显示其他所有内容并 运行 它,它作品。同样,这种异常只发生在 Macs 上(我尝试了两个 Macs 都 运行ning Yosemite),并且脚本在 Windows 上完美运行(两者都64 位和 32 位)。
此外,在我的 Mac 上 运行 整个脚本时,它会成功地 运行 应用程序并读取 csv,但会捕捉到一些东西否则在脚本的后面。它似乎只捕捉与环境相关的命令(即 read.csv、read.table、tk_choose.dir)。它对基本的处理命令从来没有任何问题。一旦它甚至毫无问题地完成了整个脚本,但下次我 运行 它时,它再次出现 read.csv。
我也不认为这个问题与我机器的处理限制有关,因为我的计算机上 运行 要求更高的 R 脚本没有问题。
有什么想法吗?
我终于在GitHub forum上找到了答案。它与 RStudio 中的查看器窗格有关。要在 Mac 上使用,我将 'options(shiny.launch.browser = TRUE)' 添加到我的脚本的开头,以便它使用我计算机的默认 Web 浏览器作为查看器窗格而不是 R 的。