R 스크립트를 독립 실행 형 .exe 파일로 컴파일 하시겠습니까?


85

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


15
아주 짧은 대답 : 아닙니다.
Dirk Eddelbuettel

2
실제로 배포하고 싶지만 스크립트와 알고리즘을 비밀로 유지하고 암호화하는 방법이나이 목적을 달성하는 다른 방법이 있습니까?
Joyce


1
@Joyce, 코드를 숨기는 표준 솔루션은 응용 프로그램을 서버에 배포하는 것입니다. 따라서 사용자는 서버를 통해 연결됩니다. 코드를 숨길 수있을뿐만 아니라 사용자는 항상 최신 버전에 액세스 할 수 있습니다. 그러나 서버 인프라를 설정해야합니다 (R 클라우드 공급자를 사용하는 것이 가장 좋습니다).
Tripartio

1
패키지를 생성하면 공통 코드를 배포하는 데 도움이됩니다. 저도 평범한 작업 / 기능에 대한 exe, 반복해서 반복되는 계산을 만드는 방법을 찾고 있습니다. 코딩을 사용하지 않거나 UI 기반 앱을 선호하는 사람들과 exe를 공유합니다. 불행히도 여전히 방법을 찾고 있습니다.
bonCodigo

답변:


28

사실 귀하의 요구 사항을 충족하는 솔루션을 달성하는 방법이 있습니다. R-Blogger에서 R을 사용 하여 데스크톱 앱 배포에 대한 기사를 살펴보십시오 . 기사에서 자세히 설명했듯이 단일 exe 파일보다 몇 가지 더 많은 것을 사용하게됩니다.

또한 나는 당신의 관심을 끌기 위해하고자 RGtk2 의 사용과 RGtk2 당신이 밀어 쑤셔 넣어 오면 R.에서 자신의 인터페이스를 개발하기 위해 시도 할 수, 나는 당신이 R의 휴대용 버전과 함께 당신의 R 코드를 싸서 수 있다는 신뢰 하나의 설치 프로그램에 대한 종속성과 그로부터 make 및 app으로 인해 단일 exe 파일의 환상을 만듭니다.

귀하의 질문에서 R 코드를 해석하는 독립 실행 형 실행 파일을 개발하는 것이 쉬운 지 물었습니다 . 쉽다고 말하지 않겠습니다. 애플리케이션에서 R 코드를 실행하려는 강한 욕구가 있다면 RCaller for Java 또는 R.NET을 사용하여보다 간단한 방식으로 실행할 수 있습니다.


1
R로 데스크톱 앱을 배포하는 링크 된 기사는 정말 좋습니다 (휴대용 앱을 사용하고 반짝입니다!), Thx!
R Yoda

2
@RYoda 나는 그것을 읽게되어 기쁩니다. 이 주제에 관심이 있습니다. Shiny를 고수하고 싶다면 이 기사 에서는 Shiny 앱을 Windows 데스크톱 앱으로 패키징하는 데 대한 흥미로운 조언을 제공합니다.
Konrad 2011

javax.script API를 통해 RCaller 스크립팅 엔진을 사용할 수도 있습니다. mhsatman.com/rcaller-3-0
jbytecode

11

귀하의 의견에 대한 답변 :

실제로 배포하고 싶지만 스크립트와 알고리즘을 비밀로 유지하고 암호화하는 방법이나이 목적을 달성하는 다른 방법이 있습니까?

를 사용하여 함수를 저장하여이 작업을 수행 할 수 있습니다 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 스크립트를 모두로드하고 무엇이든 실행합니다. 모든 것을 압축하여 누구에게나 배포하십시오. 패키지로 컴파일 할 수도 있습니다. 사실상 모든 것은 읽기 전용이 될 것입니다.

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


제안 해 주셔서 감사합니다. 다른 사람이 코드를 직접 보는 것을 방지하는 한 가지 방법이 될 수 있습니다. 다시 한 번 감사드립니다.
Joyce

3
그러나 입력하면 나타납니다 f.
MAPK

4

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

숨겨진 코드를 찾는 데는 중간 수준의 프로그래밍 기술 만 필요하지만 의도적 인 노력이 필요하며 사용자가 코드를 우연히 봤다고 주장 할 수 없습니다. 그런 다음 엿보기 금지 계약을 시행하려면 특정 유형의 라이센스 계약이 필요합니다.


감사합니다 Greg, 말씀하신 기능을 살펴 보았지만 코드를 숨기는 데 사용하는 방법을 알 수 없습니다. 좀 더 자세히 설명해 주시겠습니까?
Joyce

@Joyce,이 petals함수는 코드를 숨기지 않습니다. 이것은 코드의 핵심 부분을 숨긴 한 예입니다 (핵심 부분을 읽을 수 있습니까?). 암호화 (표백)를하려면 다른 도구가 필요합니다. 더 간단한 접근 방식은 stat.ethz.ch/pipermail/r-devel/2011-October/062236.html 에서 설명 합니다. 바이트 컴파일도 도움이 될 수 있지만 실제로 어떤 유형의 라이센스 계약이 필요합니다.
Greg Snow

3

배포 머신에 R을 설치해야합니다. 실행 파일을 만드는 것에 관해서는 그것이 가능한지 잘 모르겠습니다. 그러나 R 스크립트를 호출하는 다른 프로그램을 만들 수 있습니다. R은 통역 언어입니다. 불가능합니다.


3
R 컴파일러에 대한 소식이 있습니까? 저는 파이썬을 사용하기 시작했고 exe 파일 (예 : py2exe 및 cx_freeze)을 생성하는 쉬운 방법이 있습니다. 곧 R에서 이와 같은 것을 볼 기회가 있습니까?
Tony
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.