Compilare lo script R in un file .exe autonomo?

C’è un modo semplice per compilare il mio script R in file .exe standalone proprio come fa Matlab?

Di fatto c’è un modo per ottenere una soluzione che soddisfi le tue esigenze. Dai un’occhiata all’articolo su Distribuzione di app desktop con R su R-Blogger. Come dettagliato nell’articolo, finirai per utilizzare alcune cose in più rispetto a un singolo file exe.

Vorrei anche attirare la vostra attenzione su RGtk2 con l’uso di RGtk2 che potreste tentare di sviluppare la vostra interfaccia in R. Se la spinta arriva a spingere, ho fiducia che potreste impacchettare il vostro codice R insieme a una versione portatile di R e dipendenze in un unico installer e make e app da questo, ciò creerebbe l’illusione di un singolo file exe.

Nella tua domanda hai chiesto se è facile sviluppare un file eseguibile standalone che interpreti il ​​codice R. Non direi che è facile. Se hai un forte desiderio di eseguire un codice R da un’applicazione, potresti farlo in modo più semplice usando RCaller per Java o R.NET .

In risposta al tuo commento:

In realtà mi piacerebbe distribuirlo ma mantenendo segreti gli script e l’algoritmo, c’è un modo per criptare questo o altri modi per raggiungere questo scopo?

È ansible (effettuare una sorta di) operazione salvando le funzioni usando save() . Ad esempio, ecco una funzione f() si vuole mantenere segreta:

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

Salvalo ovunque:

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

E quando vuoi usare la funzione:

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

Vorrei salvare tutte le mie funzioni in file separati, metterle in una cartella e avere un semplice script .R vecchio caricandoli tutti dentro e eseguendo qualsiasi cosa. Comprima tutto e distribuiscilo a chiunque. Forse anche compilarlo in un pacchetto. In effetti l'intera cosa sarebbe stata letta solo allora.

Questa soluzione però non è eccezionale. Puoi ancora vedere la funzione in R digitando il nome della funzione in modo che non sia nascosta in quel senso. Ma se apri i file .rda, i loro contenuti sono tutti confusi. Tutto dipende davvero da quanto i destinatari del tuo codice hanno esperienza con R.

Bene, avrai bisogno di R installato sulla macchina di distribuzione. Per quanto riguarda la realizzazione di un eseguibile, non sono sicuro che sia ansible. Ma puoi creare un altro programma che invochi il tuo script R. R è un linguaggio interpretato. Non è ansible.

Una forma di codice crittografato è implementata nella funzione petals del pacchetto TeachingDemos.

Si noti che prenderebbe solo le abilità di programmazione di livello intermedio per trovare il codice nascosto, tuttavia richiede uno sforzo deliberato e l’utente non sarebbe in grado di pretendere di aver visto il codice per caso. Avresti quindi bisogno di un qualche tipo di contratto di licenza per far rispettare eventuali accordi di sbirciatina.