Запустите удаленный процесс R, используя скрипт на локальном компьютере

Я использую R в Debian с emacs и ess. Я бы запустил процесс R на удаленной машине из сценария R на своем ноутбуке. Таким образом, изнутри emacs загружаю мой сценарий R, я подключаюсь к удаленной машине по ssh и запускаю новый сеанс R, затем использую M-x ess-remote для подключения удаленного процесса R к моему локальному сценарию R. Все работает хорошо, пока я не попытаюсь загрузить какую-то функцию со своего ноутбука (локальной машины) и отправить ее на удаленный R. Всякий раз, когда я пытаюсь это сделать, я получаю следующую ошибку:

source('myFunction.R')
Error in file(filename, "r", encoding = encoding) : 
  cannot open the connection
In addition: Warning message:
In file(filename, "r", encoding = encoding) :
  cannot open file 'myFunction.R': No such file or directory

Если я переключусь на консоль R и getwd() консоль скажет, что я нахожусь в домашнем каталоге удаленной машины.

Я следовал инструкциям с сайта ess wbb здесь . Где я ошибаюсь?


person Riccardo    schedule 17.10.2014    source источник


Ответы (1)


В этом случае я открываю локальный файл в Emacs, а затем

M-x ess-eval-buffer

Это возьмет содержимое вашего файла и оценит его при удаленном соединении.

Другой вариант — переместить ваши скрипты на удаленную машину и открыть их удаленно с помощью трамп. Затем вы можете редактировать их локально и использовать все, что может предложить ESS. Этот второй вариант позволит вам использовать source, как в вашем вопросе.

Быстрый путь для открытия удаленного сценария — выбрать буфер *R*, а затем C-x C-f, чтобы открыть файл.

Надеюсь, это поможет.

person Jarrod Urban    schedule 19.10.2014