Làm cách nào để ngắt một mã đang chạy trong R bằng lệnh bàn phím?


81

Bất cứ ai có thể cho biết làm thế nào tôi có thể làm gián đoạn một tập lệnh đang chạy trong R?

Giả sử tôi có một vòng lặp vô hạn hoặc một số vấn đề khác và tôi muốn dừng chạy tập lệnh. Có lệnh bàn phím nào thực hiện điều đó không?

Nếu nó có ích, trong Python, nó là Ctrl + c. Tôi đã thử điều đó trong R, và nó không hoạt động :).

Tôi đã thực hiện một số tìm kiếm cho câu hỏi có vẻ đơn giản này, nhưng không thể tìm thấy câu trả lời.

Cảm ơn trước.


4
Trong Rgui, nếu bảng điều khiển R có tiêu điểm, thì ESC hoặc Alt-M [Enter] hoặc nhấp vào hình bát giác dừng màu đỏ sẽ dừng phép tính chữa bệnh
Henry

1
Tôi nghĩ nó cũng phụ thuộc vào hệ điều hành bạn đang sử dụng (Wondows, Mac OS, Linux) và cách bạn đang chạy tập lệnh R của mình (từ R gui, Emacs, ...).
Manuel Ramón

6
ESC cũng hoạt động trong R Studio (ít nhất là khi chạy Windows).
Thuyền trưởng Murphy

2
Bạn nên đề cập đến điều đó trên Windows trong bài đăng ban đầu của mình. Cố gắng đề cập đến tất cả các thông tin liên quan. Bạn cũng nên đề cập đến cách bạn đang chạy R.
Xu Wang

Câu trả lời:


63

Tự trả lời (tóm tắt khá nhiều nhận xét và câu trả lời của người khác):

  • Trong RStudio, Eschoạt động, trên windows, Mac và ubuntu (và tôi cũng đoán trên các bản phân phối linux khác).

  • Nếu quá trình được chạy trong ubuntu shell (và điều này không Rcụ thể), ví dụ: sử dụng:

    Rscript my_file.R
    

    Ctrl + c giết chết quá trình

    Ctrl + z đình chỉ quá trình

  • Trong lớp vỏ R, tiêu Ctrl + Cdiệt giúp bạn thoát khỏi nó


17
Thật không may, trong RStudio, Esckhông thể làm gián đoạn các quá trình sử dụng nhiều bộ nhớ.
Orion

14

Control-C hoạt động, mặc dù tùy thuộc vào những gì quá trình đang thực hiện, nó có thể không mất ngay.

Nếu bạn đang sử dụng hệ thống dựa trên unix, một điều tôi làm là control-z để quay lại dấu nhắc dòng lệnh và sau đó đưa ra lệnh 'giết' cho ID quy trình.


6

Hãy thử Ctrl + z Nhưng nó sẽ giết quá trình chứ không phải tạm dừng nó.


3
Tôi đã thử Ctrl + z, nhưng nó cũng không hoạt động. Tôi đang sử dụng Windows, btw. Xin cảm ơn.
Akavall

Phải, đây không phải là sự gián đoạn của bàn phím, cũng có thể đóng cửa sổ
dòng lệnh

1

Tôi biết điều này đã cũ, nhưng tôi đã gặp phải vấn đề tương tự. Tôi đang sử dụng Mac / Ubuntu và chuyển đổi qua lại. Những gì tôi đã tìm thấy là chỉ gửi một tín hiệu ngắt đơn giản đến quá trình R chính sẽ thực hiện chính xác những gì bạn đang tìm kiếm. Tôi đã chạy các tập lệnh kéo dài tới 24 giờ và ngắt tín hiệu hoạt động rất tốt. Bạn sẽ có thể chạy kill trong terminal:

$ kill -2 pid

Bạn có thể tìm thấy pid bằng cách chạy

$ps aux | grep exec/R

Không chắc chắn về Windows vì tôi chưa từng ở đó, nhưng tôi không thể tưởng tượng là không có tùy chọn nào để thực hiện việc này trong Command Prompt / Task Manager

Hi vọng điêu nay co ich!

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.