【发布时间】:2017-03-01 17:35:04
【问题描述】:
这是我第一次在这里发布问题,如果我过于模糊或不清楚,请原谅我。我在 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 上(我尝试了两台都运行 Yosemite 的 Mac),并且该脚本在 Windows(64 位和 32 位)上完美运行。
此外,在我的 Mac 上运行整个脚本时,它会不时地成功运行应用程序并读取 csv,但稍后会在脚本中捕获其他内容。它似乎只捕获与环境相关的命令(即 read.csv、read.table、tk_choose.dir)。它在基本处理命令方面从来没有任何问题。一旦它甚至没有问题地完成了整个脚本,但下次我运行它时,它又被 read.csv 捕获了。
我也不认为这个问题与我机器的处理限制有关,因为我已经在我的计算机上运行了要求更高的 R 脚本而没有问题。
有什么想法吗?
【问题讨论】:
-
你是如何运行该脚本的?你在使用 RStudio 吗?
-
是的,我使用的是 R studio R 版本 3.2.4 (2016-03-10) 平台:x86_64-apple-darwin13.4.0 (64-bit) 运行于:OS X 10.10.5 (优胜美地)
标签: r windows shiny osx-yosemite