这是我第一次在这里发帖提问,如果我过于模糊或不清楚,请原谅我。我在R中运行一个以闪亮的应用程序开头的脚本,当使用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中读取但停止。它不会产生错误或警告信息,甚至不会给出“+”表示我遗漏了')'或其他东西。它只是停止,不会在表中读取,并且永远不会继续使用脚本的其余部分。它也没有被冻结,它就像它到达脚本末尾一样。请注意,这与我在脚本顶部导入的csv相同,因此我的语法或csv文件没有任何问题。但是,如果我只是首先运行脚本的闪亮应用程序部分,然后运行脚本的其余部分,一切都完美无瑕!换句话说,如果我一次运行整个脚本,它会捕获,但是如果我只是突出显示闪亮的应用程序并运行它,然后突出显示其他所有内容并运行它,它就可以了。同样,这种异常只发生在Mac上(我试过两台Mac都运行Yosemite),并且该脚本在Windows上运行完美(64位和32位)。
此外,在我的Mac上运行整个脚本时,它会成功运行应用程序并在csv中读取,但稍后会在脚本中捕获其他内容。它似乎只能捕获与环境相关的命令(即read.csv,read.table,tk_choose.dir)。它对基本处理命令永远不会有任何问题。一旦它甚至没有问题就完成了整个脚本,但是下次我运行它时,它再次陷入了read.csv。
我也不认为这个问题与我的机器的处理限制有关,因为我在计算机上运行了更加苛刻的脚本而没有问题。
有什么想法吗?
答案 0 :(得分:1)
我终于在GitHub forum找到了答案。它与RStudio中的查看器窗格有关。要在Mac上使用,我在我的脚本的开头添加了'options(shiny.launch.browser = TRUE)',因此它将我的计算机的默认Web浏览器用作查看器窗格而不是R。