2016-08-09 7 views
-1

Я создал сценарий, который отлично работает, когда я запускаю его из Rstudio.R исполняемый файл не работает, но скрипт отлично работает

Однако, когда я сохраняю его как «Rexec» и пытаюсь запустить его двойным щелчком, он только частично запускается.

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

У меня есть другой, гораздо более мощный сценарий, и у меня не было проблем.

Этот сценарий отличается тем, что, когда я запускаю его через RStudio, есть несколько диалоговых интерактивный графического интерфейс всплывающих окон, которые требуют некоторых входных от меня то есть выбрать заголовки столбцов с select.list или сохранить файл как PNG с помощью использования:

png.filename <- tclvalue(tkgetSaveFile(initialfile = "choose name.png", 
             filetypes = "{ {PNG Files} {.png} }")) 

Как проверить, что вызывает проблему, т.е. выводить журнал ошибок?

+0

', когда я сохраняю его как «Rexec» «Ты потерял меня там. – Roland

+0

Извинения за мой бедный пост. Я имел в виду, что я сохраняю R-скрипт, например, «foo_script.Rexec». Затем я могу связать этот тип файла с исполняемым файлом следующим образом: http://www.r-datacollection.com/blog/Making-R-files-executable/. Запуск сценария - это просто вопрос двойного щелчка на «foo_script.Rexec». См. Мое редактирование, когда я нашел примеры создания журнала ошибок, а затем, как исправить проблему. –

ответ

0

Я нашел этот пример того, как получить журнал ошибок: Output error/warning log (txt file) when running R script under command line.

Я добавил эти строки в мой код выглядит следующим образом:

zz <- file("error_log.text", open="wt") 
sink(zz, type="message") 

....code chunk.... 

sink(type="message") 
close(zz) 

Об этом пишет текстовый файл в каталог, содержащий «foo_script.Rexec» с сообщениями, которые содержат следующее:

Error in select.list(names(MQ.file.DF), multiple = TRUE, title = "Choose variables to remove", : 
    select.list() cannot be used non-interactively 
Execution halted 

select.list(), похоже, проблема, поэтому процесс рушится.

Работающ - Я изменил к использованию tk_select.list и, кажется, сортирует проблему. Скрипт работает без сбоев. Я предпочитаю select.list, так как он поддерживает щелчок и перетаскивание курсора, чтобы выделить несколько столбцов, тогда как с tk_select.list вам нужно щелкнуть по одному. Я возьму еще несколько кликов, пока он работает нормально. Надеюсь, это поможет кому-то с подобной проблемой.

+0

Лучше скопировать свои изменения в ответ здесь, а не ссылаться на них в своем вопросе. –

+0

Привет, Пол, хорошо сделаю это в следующий раз. –