Редактировать функцию в R и сохранять изменения (в стиле Matlab)? - PullRequest
2 голосов
/ 28 февраля 2012

У меня есть несколько файлов R, содержащих функции, которые я написал.Я использую эти файлы, чтобы получить доступ к этим функциям.Если foo - моя функция, и я набираю:

foo <- edit(foo)

или

fix(foo)

Я могу изменить функцию и сохранить ее только дляэтот сеанс.Как сделать изменения постоянными, то есть сохранить их в исходном файле?До сих пор я ищу исходный файл, редактирую его и затем использую его, что иногда может раздражать.В Matlab я видел, что «edit (function)» сохраняет изменения в исходном файле функции.

спасибо

Ответы [ 2 ]

3 голосов
/ 28 февраля 2012

Я думаю, это зависит от того, в каком графическом интерфейсе (и, следовательно, в какой операционной системе) вы используете R. Лично я доволен R.app в OSX, но есть R-плагины для многих распространенных редакторов, таких как TextWrangler или Scite. IIRC эти плагины позволяют вам выполнить команду «source» из редактора, чтобы при сохранении ваших изменений также обновлялась версия функции в вашей среде R-консоли.

2 голосов
/ 28 февраля 2012

Будет ли у вас работать сохранение объекта функции? Если это так, используйте save() в редактируемой функции и load(), чтобы загрузить ее обратно. edit() и fix() работают с разобранными R-объектами, а не с исходными файлами, поэтому будет трудно или затруднить их повторную обработку

> foo <- function(x) 1:10
> writeLines("foo.txt", foo)
> writeLines(deparse(foo), "foo.txt")
> readLines("foo.txt")
[1] "function (x) " "1:10" ## not what is wanted

Как говорит @CarlWitthoft, вам может быть лучше использовать один из многих графических интерфейсов и IDE, доступных для R. RStudio очень популярен и удобен, а Emacs + ESS трудно победить.

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