2016-10-19 3 views
0

Это мой первый вопрос, здесь, пожалуйста, простите меня, если я слишком смутно или неясно. Я запускаю скрипт в R, который начинается с блестящего приложения, и при использовании Windows этот скрипт работает безупречно. Однако, когда на Mac, сценарий, похоже, захватывает определенные команды после блестящего приложения. Вот минимальный пример моего скрипта. Я включил полное блестящее приложение, если оно имеет значение.R останавливает скрипт после блестящего приложения без ошибок

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.

Я также не думаю, что эта проблема связана с ограничениями на обработку моей машины, поскольку я столкнулся с гораздо более сложными сценариями в R на моем компьютере без проблем.

Любые идеи?

+0

Как вы используете этот скрипт? Вы используете RStudio? – Geovany

+0

Да, я использую студию R R версия 3.2.4 (2016-03-10) Платформа: x86_64-apple-darwin13.4.0 (64-разрядная версия) Выполняется под: OS X 10.10.5 (Yosemite) – Kevin

ответ

0

Я, наконец, нашел ответ на GitHub forum. Это связано с областью просмотра в RStudio. Чтобы использовать на компьютерах Mac, я добавил «options (shiny.launch.browser = TRUE)» в начало моего сценария, чтобы он использовал веб-браузер по умолчанию моего компьютера как панель просмотра вместо R.