2012-12-31 2 views
54

R 스크립트를 독립 실행 형 .exe 파일에 컴파일하는 쉬운 방법이 있습니까?R 스크립트를 독립 실행 형 .exe 파일로 컴파일 하시겠습니까?

+8

매우 짧은 대답 : 아니오. –

+1

사실 나는 이것을 배포하고 싶지만 스크립트와 알고리즘 비밀을 지키고 싶다면이 목적을 달성하기 위해 다른 방법으로 암호화하는 방법이 있을까요? – Joyce

+2

코드를 숨기기 위해 http://stackoverflow.com/questions/4707276/encrypting-r-script-under-ms-windows –

답변

4

배포 시스템에 R이 설치되어 있어야합니다. 실행 파일을 만드는 것에 대해서는 가능한지 확실하지 않습니다. 그러나 R 스크립트를 호출하는 또 다른 프로그램을 만들 수 있습니다. R은 해석 된 언어입니다. 그것은 불가능합니다. 귀하의 코멘트에 대한 응답으로

+1

R 컴파일러에 대한 소식이 있습니까? 파이썬을 사용하기 시작했고 exe 파일 (py2exe 및 cx_freeze)을 생성하는 쉬운 방법이 있습니다. 곧 R에서 이와 비슷한 것을 볼 기회가 있습니까? – Tony

8

: 사실

내가하지만 스크립트와 알고리즘의 비밀 유지를 distribe 싶습니다, 그 암호화하는 방법 또는이 목적을 달성 에 다른 방법은 무엇입니까?

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") 

나는 절약 할 수 내 모든 기능을 별도의 파일에 넣어 폴더에 넣고 하나의 일반 old .R 스크립트를 모두로드하고 실행하십시오. 모든 것을 압축해서 누구에게나 배포하십시오. 어쩌면 그것을 패키지로 컴파일 할 수도 있습니다. 사실 모든 것이 읽기 전용 일 것입니다.

이 솔루션은별로 좋지 않습니다. 함수의 이름을 입력하여 R에서 함수를 볼 수 있으므로 그 의미에서 숨겨지지는 않습니다. 그러나 .rda 파일을 열면 내용이 모두 왜곡됩니다. 모두 코드의 수신자가 R에 얼마나 경험이 있는지에 따라 달라집니다.

+0

제안 해 주셔서 감사합니다. 다른 사람들이 직접 코드를 보지 못하도록하는 한 가지 방법 일 수 있습니다. 다시 감사드립니다. – Joyce

+1

전체 작업 공간을 이미지로 저장하는 방법은 어떻습니까? –

4

암호화 된 코드를 갖는 한 가지 형태는 TeachingDemos 패키지의 petals 함수에서 구현됩니다.

중간 수준의 프로그래밍 기술만으로 숨겨진 코드를 찾을 수는 있지만 의도적으로 노력하고 사용자가 우연히 코드를 본 적이 있다고 주장 할 수는 없습니다. 그런 다음 엿보기 계약을 시행하기 위해 일부 유형의 라이센스 계약이 필요합니다.

+0

그렉, 고맙다, 내가 언급 한 기능을 들여다 보았지만 코드를 숨기는 데 그 코드를 사용하는 방법을 알아낼 수 없다. 친절하게도 더 자세히 설명하겠습니까? 고마워요. – Joyce

+0

@ Joyce,'petals' 함수는 코드를 숨기지 않습니다. 핵심 코드 조각을 숨긴 한 가지 예입니다 (키 피스를 읽을 수 있습니까?). 암호화 (표백)를 수행하려면 다른 도구가 필요합니다. 더 간단한 접근 방법은 https://stat.ethz.ch/pipermail/r-devel/2011-October/062236.html에서 논의됩니다. 바이트 컴파일도 도움이 될 수 있지만 실제로는 몇 가지 유형의 라이센스 계약이 필요합니다. –

21

실제로 요구 사항을 충족하는 솔루션을 얻을 수있는 방법이 있습니다. R-Bloggers에 Desktop Apps with R 배포에 대한 기사를 살펴보십시오. 이 기사에서 자세히 설명했듯이, 하나의 exe 파일보다 몇 가지 더 많은 것을 사용하게 될 것이다.

또한 RGtk2을 사용하여 R에서 자신 만의 인터페이스를 개발하려고 시도 할 수 있습니다. 밀어 넣기가 발생하면 R 코드를 휴대용으로 포장 할 수 있다고 믿습니다. 버전의 R 및 종속성을 하나의 설치 프로그램에 넣고 make와 app을 사용하면 단일 exe 파일의 환상을 만들 수 있습니다.

귀하의 질문에 은 R 코드를 해석하는 독립 실행 형 실행 파일을 개발할 수 있는지 여부를 묻습니다. 나는 그것이 쉽지 않다라고 말하지 않을 것이다. 응용 프로그램에서 R 코드를 실행하려는 강한 의지가있는 경우 Java의 경우 RCaller 또는 R.NET을 사용하면 더 간단하게 R 코드를 실행할 수 있습니다.

+1

R로 데스크톱 애플리케이션을 제공하는 링크 된 기사가 정말 좋습니다 (휴대용 앱을 사용하고 빛나는!), Thx! –

+2

@RYoda 나는 그것을 읽게되어 기쁩니다. 이 주제에 관심이 있습니다. Shiny와 함께하고 싶다면, [이 기사] (http://blog.analytixware.com/2014/03/packaging-your-shiny-app-as-windows.html)는 Shiny App을 다음과 같이 패키징하는 것에 대한 흥미로운 조언을 제공한다. Windows 데스크톱 응용 프로그램. – Konrad

+0

javax.script API 전체에서 RCaller 스크립팅 엔진을 사용할 수도 있습니다 (http://mhsatman.com/rcaller-3-0 참조). – jbytecode

관련 문제