Уведомление о завершении работы R?

Возможный дубликат:
Есть ли способ заставить R издавать звуковой сигнал / воспроизводить звук в конце сценария?

Ожидая, пока R завершит 5-10-минутную работу, я мог бы начать писать (в лучшем случае), хотя я хотел бы вернуться к анализу сразу после завершения.

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

Например, могу ли я позвонить в звонок, открыть всплывающее окно, отправить электронное письмо?

Я могу представить бесконечные возможности, просто добавив system() в конец кода, но есть ли другой вариант?

Для записи я обычно использую R в интерактивном режиме в Emacs ESS, но также использую R CMD Sweave и R --vanilla < из командной строки.


person Abe    schedule 25.07.2012    source источник


Ответы (2)


Попробуйте alarm()

См. этот пост (может быть, написать в Твиттере, что это сделано?)

person Edward    schedule 25.07.2012

если вы используете систему Linux, вы можете найти этот пост полезным , где использовалась следующая команда оболочки.

zenity --error --text="Testing..."

вы можете встроить его в коды R, например

system("zenity --error --text='Testing...'")

это сделает подсказку. Однако будьте готовы и не бойтесь.

person Community    schedule 25.07.2012
comment
Я использую Linux; но к чему я должен быть готов / чего бояться? Будет что-то запускать или работать в фоновом режиме? - person Abe; 25.07.2012
comment
это просто вызовет небольшое окно. если вы поглощены редактированием диссертации, эта подсказка просто шокирует вас. кроме этого, не более того. - person ; 25.07.2012
comment
будь легким, согласно википедии, Zenity доступен для Linux, BSD и Windows и выпущен под лицензией GPL. в неинтерактивном режиме я просто не знаю, что вам нужно: с одной стороны, вы хотите, чтобы вас уведомляли, когда код завершается, но, установив неинтерактивный режим, вы просто не хотите, чтобы выводилась какая-либо информация. успокойся и подумай немного. - person ; 25.07.2012
comment
а) Возможна установка имеющихся средств; но его нет, например, на наших безголовых (без GUI, не Gnome) серверах, где запускаются сценарии, которые могут уведомлять. б) Ваш ответ по-прежнему неприменим для неинтерактивного использования. А а) и б) означают, что ваш ответ все еще неверен (хотя правильный для другого вопроса, например, как отобразить всплывающее окно из оболочки). - person Dirk Eddelbuettel; 25.07.2012
comment
Дирк: Я понял вашу точку зрения о неинтерактивном режиме, который возникает, когда вы что-то вычисляете на сервере. В этом случае я бы предложил использовать почтовую команду, которую довольно сложно настроить. С другой стороны, если вы просто запустите R на локальном хосте (как указано в вопросе), есть ли у вас смысл использовать неинтерактивный режим? Кроме того, если вы не хотите подавать звуковой сигнал в динамик компьютера, но по-прежнему хотите воспроизводить подсказку на многоплатформенной платформе, вам, возможно, придется обратиться к java или sth. Давайте вернемся, зачем вам делать кроссплатформенную вещь для решения такой маленькой проблемы? - person ; 25.07.2012
comment
Вы можете так же легко использовать package: tcltk, чтобы открыть диалоговое окно, которое будет работать в Linux / Mac / Windows и не требует zenity. - person Spacedman; 25.07.2012
comment
Использование еще одного пакета увеличивает риск конфликта пакетов, когда system () вызывает другой процесс, и, таким образом, является более безопасным. У меня есть опыт, что многоядерный пакет R конфликтует с openblas, когда последний устанавливает cpu_affinity равным true (оба являются известными пакетами, верно?) Кроме того, решение с графическим интерфейсом никогда не работает на сервере, и если компьютерщик так сильно настроен, system () плюс почта - последнее средство. - отнюдь не является system () плохим. - person ; 25.07.2012
comment
Вы не используете system () + email, если это запускается из cronjob, поскольку вы получаете почтовую часть бесплатно из cron. - person Dirk Eddelbuettel; 25.07.2012
comment
1. Плакат спросил о «на локальном хосте», а не о сервере. 2. tcltk довольно стандартен, он ни с чем не конфликтует. 3. Система + почта не будут работать, если администратор сервера остановил любую возможность того, что его массивный кластер является спам-фермой. - person Spacedman; 25.07.2012
comment
1. Обсуждение распространяется на мультиплатформенность, сервер, что угодно, а не только на localhost.2 На localhost я считаю, что минимизация использования пакетов является хорошей практикой, иначе R по умолчанию будет вызывать тогда при запуске. 3 Если администратор не хочет, чтобы сервер был фермой чего-либо, чем я не могу себе представить, что можно сделать, чтобы получить уведомление 4 Если администратор арендует канал отправки сообщения на собственный IP-адрес пользователя, R может вызвать rsync для восстановления небольшой файл, в то время как локальный хост должен прослушивать файл и запрашивать окно с помощью tcltk или чего-то еще, в этом случае system () по-прежнему является лучшим выбором. - person ; 26.07.2012