Có cách nào dễ dàng để biên dịch R
tập lệnh của tôi thành .exe
tệp độc lập giống như những gì matlab làm không?
Có cách nào dễ dàng để biên dịch R
tập lệnh của tôi thành .exe
tệp độc lập giống như những gì matlab làm không?
Câu trả lời:
Trên thực tế, có một cách để đạt được giải pháp đáp ứng yêu cầu của bạn. Hãy xem bài viết về Triển khai ứng dụng máy tính để bàn với R trên R-Bloggers. Như đã trình bày chi tiết trong bài viết, bạn sẽ sử dụng nhiều thứ hơn một tệp exe duy nhất.
Ngoài ra, tôi muốn thu hút sự chú ý của bạn đến RGtk2 với việc sử dụng RGtk2, bạn có thể cố gắng phát triển giao diện của riêng mình trong R. Nếu đẩy đến xô đẩy, tôi tin rằng bạn có thể đóng gói mã R của mình cùng với phiên bản R di động và phụ thuộc vào một trình cài đặt và tạo và ứng dụng từ đó, điều đó sẽ tạo ra ảo ảnh về một tệp exe duy nhất.
Trong câu hỏi của bạn, bạn đã hỏi liệu có dễ dàng phát triển một tệp thực thi độc lập thông dịch mã R hay không. Tôi sẽ không nói rằng nó dễ dàng. Nếu bạn rất muốn chạy mã R từ một ứng dụng, bạn có thể làm điều đó theo cách đơn giản hơn bằng cách sử dụng RCaller cho Java hoặc R.NET .
Để trả lời bình luận của bạn:
Trên thực tế, tôi muốn phân phối nó nhưng giữ bí mật các tập lệnh và thuật toán, có cách nào để mã hóa nó hoặc bất kỳ cách nào khác để đạt được mục đích này không?
Bạn có thể (loại) làm điều này bằng cách sử dụng lưu các hàm save()
. Ví dụ: đây là một chức năng f()
bạn muốn giữ bí mật:
f <- function(x, y) {
return(x + y)
}
Lưu nó ở bất cứ đâu:
save(f, file = 'C:\\Users\\Joyce\\Documents\\R\\Secret.rda')
Và khi bạn muốn sử dụng chức năng:
load("C:\\Users\\Joyce\\Documents\\R\\Secret.rda")
Tôi sẽ lưu tất cả các chức năng của mình trong các tệp riêng biệt, đặt chúng trong một thư mục và có một tập lệnh .R cũ đơn giản tải tất cả chúng vào và thực thi bất cứ điều gì. Zip toàn bộ và phân phối nó cho bất cứ ai. Thậm chí có thể biên dịch nó thành một gói. Về hiệu quả, toàn bộ nội dung sẽ ở chế độ chỉ đọc.
Tuy nhiên, giải pháp này không phải là tuyệt vời. Bạn vẫn có thể thấy hàm trong R bằng cách nhập tên của hàm để nó không bị ẩn theo nghĩa đó. Nhưng nếu bạn mở tệp .rda, nội dung của chúng đều bị cắt xén. Tất cả thực sự phụ thuộc vào mức độ kinh nghiệm của người nhận mã của bạn với R.
f
.
Một hình thức có mã được mã hóa được triển khai trong petals
hàm trong gói TeachingDemos.
Lưu ý rằng chỉ cần các kỹ năng lập trình ở cấp độ trung cấp để tìm ra mã ẩn, tuy nhiên, nó cần nỗ lực có chủ ý và người dùng sẽ không thể khẳng định đã vô tình nhìn thấy mã. Sau đó, bạn sẽ cần một số loại thỏa thuận cấp phép để thực thi bất kỳ thỏa thuận không xem trộm nào.
petals
hàm không ẩn mã, đó là một ví dụ về việc ẩn đoạn mã khóa (bạn có thể đọc đoạn mã khóa không?). Các công cụ khác là cần thiết để thực hiện mã hóa (tẩy trắng). Một cách tiếp cận đơn giản hơn được thảo luận tại: stat.ethz.ch/pipermail/r-devel/2011-October/062236.html . Biên dịch theo byte cũng có thể hữu ích, nhưng bạn thực sự cần một số loại thỏa thuận cấp phép.
Bạn sẽ cần cài đặt R trên máy triển khai. Đối với việc tạo một tệp thực thi, tôi không chắc là có thể. Nhưng bạn có thể tạo một chương trình khác gọi tập lệnh R của bạn. R là một ngôn ngữ thông dịch. Điều đó là không thể.