Автоматическая функция «поиска» при изменении - PullRequest
4 голосов
/ 31 марта 2011

Пока я пишу функции .R, мне постоянно нужно вручную писать исходный код ("funcname.r"), чтобы изменения отражались в рабочей области.Я уверен, что это должно быть возможно сделать автоматически.Так что я хотел бы просто внести изменения в мою функцию, сохранить функцию и иметь возможность использовать новую функцию в рабочем пространстве R без ручного «выбора» этой функции.Как я могу это сделать?

ОБНОВЛЕНИЕ: я знаю о выборе соответствующих строк кода и нажатии CTRL + R в R Editor (RGui) или использовании Notepad ++ и выполнении строк в R. Но у этого подхода есть недостаток:делая консоль моего рабочего места "запутанной".Я хотел бы прекратить эту практику, если это вообще возможно.

Ответы [ 5 ]

4 голосов
/ 04 апреля 2012

Вы можете использовать R studio , у которого есть опция сохранения источника.

2 голосов
/ 31 марта 2011

Если вы используете Eclipse + StatET, вы можете нажать CTRL + R + S, чтобы сохранить ваш сценарий и получить его.Как можно ближе к автомату.

2 голосов
/ 31 марта 2011

Если вы готовы упаковать свои функции в пакет, вам может понравиться изучение пакета devtools Хэдли.Это обеспечивает набор инструментов для написания, тестирования и документирования пакетов.

https://github.com/hadley/devtools

Этот подход имеет много преимуществ, но в основном перезагружает пакет с минимальной перепечаткой.

Вам все равно придется набирать load_all ("yourpackage"), но я считаю, что это небольшое количество набираемого текста - мелочь по сравнению с преимуществами devtools.

Для получения дополнительной информации, включая информацию о настройке devtools,посмотрите на https://github.com/hadley/devtools/wiki/development

1 голос
/ 31 марта 2011

Если вы можете заставить ваш текстовый редактор запускать системную команду после сохранения файла, то вы можете использовать что-то вроде AutoIt (в Windows) или пакетный скрипт (в производной UNIX), чтобы передать вызов источника в все работающие копии R. Но это чертовски много работы за небольшую выгоду.

Тем не менее, я думаю, что гораздо более вероятно работать с обработкой событий на стороне текстового редактора, чем с R, постоянно сканирующей обновления (или каким-либо образом взаимодействующей с системой обновления-события-обмена сообщениями ОС).

1 голос
/ 31 марта 2011

Скорее всего, это невозможно (автоматическое определение смены диска без вмешательства или запуск хотя бы одной строки).

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

Если вы занимаетесь разработкой функций R, некоторая путаница в процессе разработки будет неизбежной, но, возможно, я мог бы предложить вам написать R-пакет для размещения ваших функций?

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

Не бойтесь создавать пакеты, это легко с package.skeleton () и не нужно переходить на CRAN, но может быть для вашего личного использования без распространения! Просто повеселиться!

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

Мы только несовершенные люди в несовершенном мире, но мы имеем в виду хорошо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...