Есть ли какой-либо простой способ скомпилировать мой R
script в автономный .exe
файл так же, как то, что делает Matlab?
Компилировать R script в автономный .exe файл?
Ответ 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.
Обратите внимание, что для поиска скрытого кода требуется только навыки программирования на промежуточном уровне, однако он предпринимает целенаправленные усилия, и пользователь не сможет требовать, чтобы он случайно увидел код. Тогда вам понадобится какой-то тип лицензионного соглашения, чтобы обеспечить соблюдение каких-либо соглашений о заключении контрактов.