Existe alguma maneira fácil de compilar meu Rscript em um .exearquivo autônomo, assim como o matlab faz?
Existe alguma maneira fácil de compilar meu Rscript em um .exearquivo autônomo, assim como o matlab faz?
Respostas:
Na verdade, existe uma maneira de obter uma solução que atenda às suas necessidades. Dê uma olhada no artigo sobre Implementação de aplicativos de área de trabalho com R no R-Bloggers. Conforme detalhado no artigo, você acabará usando mais algumas coisas do que um único arquivo exe.
Também gostaria de chamar sua atenção para o RGtk2 com o uso do RGtk2, você poderia tentar desenvolver sua própria interface em R. Se o impulso for necessário, espero que você possa empacotar seu código R junto com uma versão portátil de R e dependências em um instalador e fazer um aplicativo a partir dele, que criaria uma ilusão de um único arquivo exe.
Em sua pergunta, você perguntou se é fácil desenvolver um arquivo executável autônomo interpretando o código R. Eu não diria que é fácil. Se você deseja muito executar um código R a partir de um aplicativo, pode fazê-lo de maneira mais simples usando RCaller para Java ou R.NET .
Em resposta ao seu comentário:
Na verdade eu gostaria de distribuí-lo, mas mantendo os scripts e o algoritmo em segredo, existe uma maneira de criptografar isso ou alguma outra maneira de atingir esse propósito?
Você pode (mais ou menos) fazer isso salvando funções usando save(). Por exemplo, aqui está uma função que f()você deseja manter em segredo:
f <- function(x, y) {
return(x + y)
}
Salve onde quiser:
save(f, file = 'C:\\Users\\Joyce\\Documents\\R\\Secret.rda')
E quando você quiser usar a função:
load("C:\\Users\\Joyce\\Documents\\R\\Secret.rda")
Gostaria de salvar todas as minhas funções em arquivos separados, colocá-los em uma pasta e ter um velho script .R carregando todos eles e executando o que quer. Compacte a coisa toda e distribua para quem quiser. Talvez até mesmo compilá-lo em um pacote. Efetivamente, a coisa toda seria somente para leitura.
Esta solução não é tão boa assim. Você ainda pode ver a função em R digitando o nome da função para que não fique oculto nesse sentido. Mas se você abrir os arquivos .rda, o conteúdo deles ficará todo distorcido. Tudo depende realmente da experiência dos destinatários do seu código com R.
f.
Uma forma de ter código criptografado é implementada na petalsfunção do pacote TeachingDemos.
Observe que seriam necessárias apenas habilidades de programação de nível intermediário para localizar o código oculto; no entanto, é necessário um esforço deliberado e o usuário não poderia alegar ter visto o código por acidente. Você então precisaria de algum tipo de contrato de licença para fazer cumprir quaisquer acordos de não exibição.
petalsfunção não oculta o código, é um exemplo de como uma peça chave do código está oculta (você consegue ler a peça chave?). Outras ferramentas são necessárias para fazer a criptografia (branqueamento). Uma abordagem mais simples é discutida em: stat.ethz.ch/pipermail/r-devel/2011-October/062236.html . A compilação de bytes também pode ajudar, mas você realmente precisa de algum tipo de contrato de licença.
Bem, você vai precisar do R instalado na máquina de implantação. Quanto a fazer um executável, não tenho certeza se isso é possível. Mas você pode criar outro programa que invoque seu script R. R é uma linguagem interpretada. Não é possível.