Это будет не только зависеть от платформы, но и зависеть от того, как вы запустите R на своей машине. Я ожидаю, что это будет отличаться в зависимости от того, используете ли вы простую терминальную версию R или R, который поставляется вместе с R, и R, выполняемую через RStudio или другую подобную программу.
Было бы также полезно, если бы вы могли дать более подробную информацию о том, что вы пытаетесь достичь? почему вы хотите остановиться или сделать что-то еще в скрипте.
Может быть возможно выполнить то, что вы хотите, переместив фокус в новое окно, которое будет наблюдать за вводом с клавиатуры и сообщать об этом обратно вашему сценарию. Например, этот ответ: Как ждать нажатия клавиши в R? имеет код, который будет использовать библиотеку tcltk для открытия окна и ожидания нажатия клавиши или щелчка мыши, прежде чем продолжить.
Вот код, который делает больше, чем вы предлагаете:
library(tcltk)
evilglobalvariable <- NA
tt <- tktoplevel()
tkbind(tt, '<Key>', function(k) { evilglobalvariable <<- k})
for(i in 1:25) {
cat(i, "\n")
if(!is.na(evilglobalvariable)){
stop('A key was pressed')
}
Sys.sleep(1)
}
Это остановит цикл, если вы нажмете любую клавишу, когда окно Tk активно. Но он не будет обнаруживать другие нажатия клавиш, например, Если вы откроете свою почтовую программу и составите сообщение, нажатие этих клавиш не остановит цикл.
Если вы собираетесь сделать что-то серьезное с этим, было бы лучше использовать конкретную среду, а не глобальную переменную зла.