2010-05-08 29 views
71

Tôi đã viết một tập lệnh R để lấy một số dữ liệu từ cơ sở dữ liệu, thực hiện một số thao tác trên nó và đăng đầu ra tới cơ sở dữ liệu mới.Lập biểu R Kịch bản

Tôi muốn tập lệnh này chạy hàng ngày vào một thời điểm cụ thể nhưng tôi không thể tìm thấy cách nào để thực hiện điều này một cách hiệu quả.

Có ai có thể giới thiệu một tài nguyên mà tôi có thể xem để giải quyết vấn đề này không? Tôi đang chạy kịch bản này trên một máy Windows.

Trả lời

48

Giả sử kịch bản R của bạn là mytest.r, nằm ở D:\mydocuments\, bạn có thể tạo một tập tin thực thi bao gồm các lệnh sau:

C:\R\R-2.10.1\bin\Rcmd.exe BATCH D:\mydocuments\mytest.r 

Sau đó thêm nó, như một nhiệm vụ mới, để Windows Task Scheduler, ngồi đó các điều kiện kích hoạt.

Bạn cũng có thể bỏ qua tệp lô. Đặt C:\R\R-2.10.1\bin\Rcmd.exe trong program/script textbox trong task scheduler, và đưa ra như Arguments phần còn lại của lệnh đầu tiên: BATCH D:\mydocuments\mytest.r

Scheduling R Tasks via Windows Task Scheduler (Được đăng trên 11 tháng 2 năm 2015)

taskscheduleR: R package to schedule R scripts with the Windows task manager (Được đăng trên 17 Tháng Ba năm 2016)

+15

Sử dụng 'Rscript' là một lợi thế cho' R BATCH'. Các hệ thống có thể phân biệt giữa chữ thường và chữ hoa cũng nhận được 'r'. –

+0

Cảm ơn, tôi đã không sử dụng nó. Như tôi đã thấy, các đối số cũng có thể được chuyển tới kịch bản lệnh và được truy cập bằng commandArgs –

3

Tôi thiết lập các tác vụ của mình thông qua chương trình SCHTASKS. Để chạy các script khi khởi động, bạn sẽ viết một cái gì đó dọc theo dòng của

SCHTASKS /Create /SC ONSTART /TN MyProgram /TR "R CMD BATCH --vanilla d:\path\to\script.R" 

Xem this website để biết thêm chi tiết về SCHTASKS. Chi tiết khác tại Microsoft's website.

65

Thực ra trong Windows, bạn thậm chí không phải tạo tệp lô trước để sử dụng Trình lập lịch biểu.

  • Mở scheduler: START -> All Programs -> Phụ kiện -> System Tools -> Scheduler
  • Tạo một mới công tác
  • dưới Action tab, tạo ra một hành động mới
  • chọn Chương trình bắt đầu
  • duyệt đến Rscript.exe nên được đặt ví dụ tại đây:
    "C: \ Program Files \ R \ R-3.0.2 \ bin \ x64 \ Rscript.exe"
  • nhập tên của tập tin của bạn trong các thông số lĩnh vực
  • đầu vào con đường mà kịch bản được tìm thấy trong Start trong lĩnh vực
  • đi đến Triggers tab
  • tạo trình kích hoạt mới
  • chọn nhiệm vụ đó phải được thực hiện mỗi ngày, tháng, ... lặp lại nhiều lần hoặc những gì bao giờ bạn thích
+2

Có, cảm ơn bạn! Đây là những gì làm việc cho tôi, không phải ở trên và không phải là các câu trả lời khác nhau nổi trên web. Tôi sẽ chỉ thêm rằng chắc chắn rằng phần mở rộng tập tin là '.R' và NOT' .r'. – esa606

+0

Chính xác thì ý bạn là gì - điều gì bạn mong đợi sẽ xảy ra? Có lẽ điều này nên đi vào một câu hỏi của riêng mình (có thể có một câu trả lời đã có trên SO). – petermeissner

0

Sau khi thực hiện bất kỳ kết hợp các bước này và bạn nhận được lỗi "Argument Batch Ignored" sau khi R.exe chạy, hãy thử điều này, nó đã hoạt động đối với tôi.

Trong Windows Task Scheduler:

Thay BATCH "C:\Users\desktop\yourscript.R" trong các đối số lĩnh vực

với

CMD BATCH --vanilla --slave "C:\Users\desktop\yourscript.R"

+1

Điều này sẽ có ý nghĩa như một bình luận về câu trả lời của Mark Byers (hoặc có thể là một chỉnh sửa cho câu trả lời đó), tôi không nghĩ rằng nó có thể đứng một mình. – Gregor

Các vấn đề liên quan