Có cách nào thuận tiện để tự động phân tích cú pháp đối số dòng lệnh được chuyển đến tập lệnh R không?Phân tích đối số dòng lệnh trong các tập lệnh R
Thứ gì đó giống như số Getopt::Long
của perl?
Có cách nào thuận tiện để tự động phân tích cú pháp đối số dòng lệnh được chuyển đến tập lệnh R không?Phân tích đối số dòng lệnh trong các tập lệnh R
Thứ gì đó giống như số Getopt::Long
của perl?
Có ba gói trên Cran:
argparse
và json
(hoặc simplejson
).Cập nhật:
Vì lý do nào đó, 'argparse' thực sự * yêu cầu * Python. Làm cho tôi thử 'optparse' trước tiên ... – krlmlr
lời khuyên không được yêu cầu - như hấp dẫn vì sử dụng gói python argparse nổi bật từ bên trong R, sự phụ thuộc ngôn ngữ chéo chỉ làm cho tập lệnh R của bạn phức tạp và mong manh hơn nhiều. Đừng làm thế. Sử dụng một trong các tùy chọn thuần túy-R được mô tả ở trên. –
Cách đơn giản nhất là sử dụng commandArgs(). Ví dụ - lưu mã bên dưới là "tùy chọn.R":
options <- commandArgs(trailingOnly = TRUE)
options
Chạy bằng "tùy chọn Rscript.R x y z". Kết quả:
[1] "x" "y" "z"
ví dụ một danh sách của 3 yếu tố, mỗi đối số.
Điều này không giống với phân tích cú pháp tùy chọn 'getopt'. –
Xin lưu ý tôi đã trả lời điều này gần 7 năm trước; có chắc chắn là một cách tốt hơn bây giờ :) – neilfws
Chỉ cần để bổ sung cho câu trả lời Rscript:
[email protected]:~$ r -e 'print(argv)' flim flam flom
[1] "flim" "flam" "flom"
[email protected]:~$
Chúng tôi chỉ sử dụng argv
trong littler. Tôi đã may mắn với getopt, cũ hơn trong hai gói phân tích cú pháp có sẵn.
Tôi có thể giới thiệu ArgumentParser
trong gói Xmisc không? Nó là một trình phân tích cú pháp dòng lệnh lấy cảm hứng từ số argparse
của Python nhưng nó không có Python.
http://cran.r-project.org/web/packages/Xmisc/vignettes/Xmisc-ArgumentParser.pdf
Liên quan đến http://stackoverflow.com/questions/2151212/how-can-i-read-command-line-parameters-from-an-r-script. – Blaisorblade