Rất thuận tiện khi có tập lệnh R để thực hiện các ô đơn giản từ dòng lệnh. Tuy nhiên, chạy R từ tập lệnh bash không thuận tiện chút nào. Lý tưởng có thể là một cái gì đó giống nhưCách tốt nhất để sử dụng tập lệnh R trên dòng lệnh (terminal) là gì?
#!/path/to/R
...
hoặc
#!/usr/bin/env R
...
nhưng tôi đã không thể làm cho một trong những người làm việc.
Một tùy chọn khác là giữ tập lệnh hoàn toàn bằng R, ví dụ: script.R
và gọi nó bằng R --file=script.R
hoặc tương tự. Tuy nhiên, đôi khi một tập lệnh sẽ dựa vào các chuyển mạch dòng lệnh tối nghĩa mà tại đó phần điểm của mã tồn tại bên ngoài tập lệnh. Ví dụ: lén mọi thứ vào R từ bash thông qua một địa phương .Rprofile, các thiết bị chuyển mạch mong muốn sau đó tất cả mọi thứ --vanilla
ngụ ý ngoại trừ --no-init-file
.
Tùy chọn khác là tập lệnh bash để lưu trữ cờ R và không thực thi được, mà sau đó gọi tập lệnh R. Vấn đề là điều này có nghĩa là một chương trình duy nhất được chia thành hai tệp mà giờ đây phải được đồng bộ hóa, được chuyển sang máy mới cùng nhau, v.v.
Tùy chọn tôi hiện đang coi thường là nhúng R trong tập lệnh bash :
#!/bin/bash
... # usage message to catch bad input without invoking R
... # any bash pre-processing of input
... # etc
R --random-flags <<RSCRIPT
# R code goes here
RSCRIPT
Mọi thứ trong một tệp. Nó thực thi và dễ dàng xử lý các đối số. Vấn đề là kết hợp bash và R như thế này khá nhiều loại bỏ khả năng của bất kỳ IDE không thất bại trên một hay khác, và làm cho trái tim tôi bị tổn thương thực sự xấu.
Có cách nào tốt hơn tôi bị thiếu không?
Vâng, tôi nghĩ đây là cách "chính thức" để làm điều đó. – Frank
Và chạy 'Rscript --help' từ dòng lệnh sẽ liệt kê rất nhiều tùy chọn hữu ích có thể thêm vào shebang, chẳng hạn như' --vanilla'. – flodel
Hãy cũng đề cập đến hàm 'commandArgs' và các gói' getopt' và 'optparse' để phân tích cú pháp dòng lệnh. Vì vậy, các đối số và các tùy chọn cũng có thể được truyền cho các kịch bản của bạn khi chạy từ dòng lệnh. – flodel