Подтвердить что ты не робот

Компилировать R script в автономный .exe файл?

Есть ли какой-либо простой способ скомпилировать мой R script в автономный .exe файл так же, как то, что делает Matlab?

4b9b3361

Ответ 1

На самом деле существует способ достижения решения, отвечающего вашим требованиям. Взгляните на статью о развертывании Desktop Apps с R на R-Bloggers. Как подробно описано в статье, вы в конечном итоге используете несколько вещей, кроме одного файла exe.

Также я хотел бы обратить ваше внимание на RGtk2 с использованием RGtk2 вы могли бы попытаться разработать свой собственный интерфейс в R. Если толчок наступает, я надеюсь, что вы можете упаковать свой R-код вместе с переносимой версией R и зависимостями в один установщик и make и приложение, что создаст иллюзию одного файла exe.

В вашем вопросе вы спросили, легко ли разрабатывать автономный исполняемый файл, интерпретирующий R-код. Я бы не сказал это легко. Если у вас есть сильное желание запустить R-код из приложения, вы можете сделать это более простым способом, используя RCaller для Java или R.NET.

Ответ 2

В ответ на ваш комментарий:

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

Вы можете (сорт) сделать это, сохранив функции с помощью save(). Например, здесь функция f(), которую вы хотите сохранить в секрете:

f <- function(x, y) {
  return(x + y)
}

Сохраните его везде:

save(f, file = 'C:\\Users\\Joyce\\Documents\\R\\Secret.rda')

И если вы хотите использовать функцию:

load("C:\\Users\\Joyce\\Documents\\R\\Secret.rda")

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

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

Ответ 3

Ну, вам понадобится R, установленная на машине развертывания. Что касается создания исполняемого файла, я не уверен, что это возможно. Но вы можете создать другую программу, которая вызывает ваш R script. R - интерпретируемый язык. Это невозможно.

Ответ 4

Одна из форм шифрованного кода реализована в функции petals в пакете TeachingDemos.

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