Gibt es eine einfache Möglichkeit, mein R
Skript in eine eigenständige .exe
Datei zu kompilieren, genau wie es Matlab tut?
Gibt es eine einfache Möglichkeit, mein R
Skript in eine eigenständige .exe
Datei zu kompilieren, genau wie es Matlab tut?
Antworten:
Tatsächlich gibt es eine Möglichkeit, eine Lösung zu finden, die Ihren Anforderungen entspricht. Lesen Sie den Artikel zum Bereitstellen von Desktop-Apps mit R auf R-Bloggern. Wie im Artikel beschrieben, werden Sie am Ende ein paar Dinge mehr als eine einzelne exe-Datei verwenden.
Außerdem möchte ich Ihre Aufmerksamkeit auf das RGtk2 lenken, indem Sie das RGtk2 verwenden, mit dem Sie versuchen könnten, eine eigene Schnittstelle in R zu entwickeln. Wenn es darauf ankommt, vertraue ich darauf, dass Sie Ihren R-Code zusammen mit einer tragbaren Version von R und packen können Abhängigkeiten in einem Installationsprogramm und Make und App daraus, die eine Illusion einer einzelnen Exe-Datei erzeugen würden.
In Ihrer Frage haben Sie gefragt, ob es einfach ist , eine eigenständige ausführbare Datei zu entwickeln, die R-Code interpretiert. Ich würde nicht sagen, dass es einfach ist. Wenn Sie den starken Wunsch haben, einen R-Code in einer Anwendung auszuführen, können Sie dies mit RCaller für Java oder R.NET auf einfachere Weise tun .
Als Antwort auf Ihren Kommentar:
Eigentlich würde ich es gerne verteilen, aber die Skripte und Algorithmen geheim halten. Gibt es eine Möglichkeit, dies oder eine andere Möglichkeit zu verschlüsseln, um diesen Zweck zu erreichen?
Sie können dies (irgendwie) tun, indem Sie Funktionen mit speichern save()
. Hier ist zum Beispiel eine Funktion, die f()
Sie geheim halten möchten:
f <- function(x, y) {
return(x + y)
}
Speichern Sie es überall:
save(f, file = 'C:\\Users\\Joyce\\Documents\\R\\Secret.rda')
Und wenn Sie die Funktion nutzen möchten:
load("C:\\Users\\Joyce\\Documents\\R\\Secret.rda")
Ich würde alle meine Funktionen in separaten Dateien speichern, sie in einem Ordner ablegen und ein einfaches altes .R-Skript haben, das sie alle lädt und alles ausführt. Reißverschluss das Ganze und verteile es an jeden. Vielleicht sogar in ein Paket kompilieren. Tatsächlich wäre das Ganze dann schreibgeschützt.
Diese Lösung ist allerdings nicht so toll. Sie können die Funktion weiterhin in R sehen, indem Sie den Namen der Funktion eingeben, damit sie nicht in diesem Sinne ausgeblendet wird. Wenn Sie jedoch die .rda-Dateien öffnen, wird deren Inhalt verstümmelt. Es hängt alles davon ab, wie erfahren die Empfänger Ihres Codes mit R sind.
f
.
Eine Form der Verschlüsselung von Code ist in der petals
Funktion im TeachingDemos-Paket implementiert.
Beachten Sie, dass zum Auffinden des versteckten Codes nur Programmierkenntnisse auf mittlerer Ebene erforderlich sind. Dies erfordert jedoch absichtliche Anstrengungen, und der Benutzer kann nicht behaupten, den Code versehentlich gesehen zu haben. Sie benötigen dann eine Lizenzvereinbarung, um keine Peeking-Vereinbarungen durchzusetzen.
petals
Funktion verbirgt keinen Code. Dies ist ein Beispiel für das Ausblenden eines Schlüsselcodes (können Sie den Schlüssel lesen?). Für die Verschlüsselung (Bleichen) werden andere Tools benötigt. Ein einfacherer Ansatz wird unter stat.ethz.ch/pipermail/r-devel/2011-October/062236.html erläutert . Das Kompilieren von Bytes kann ebenfalls hilfreich sein, aber Sie benötigen wirklich eine Lizenzvereinbarung.
Nun, Sie müssen R auf dem Bereitstellungscomputer installiert haben. Ich bin mir nicht sicher, ob dies möglich ist, um eine ausführbare Datei zu erstellen. Sie können jedoch ein anderes Programm erstellen, das Ihr R-Skript aufruft. R ist eine interpretierte Sprache. Es ist nicht möglich.