Я часто добавляю следующее в циклы, чтобы распечатать некоторые сообщения для каждой итерации.
for (word in c("a", "long message", "c")) {
cat("\r", word)
flush.console()
Sys.sleep(1)
}

Как видим, сообщение "c"
перезаписывает только часть предыдущего "long message"
. Я хотел бы избежать этого. Единственное, что я могу придумать, это добавить дополнительные пробелы, например,
for (word in c("a", "long message", "c")) {
cat("\r", word, " ")
flush.console()
Sys.sleep(1)
}
Есть ли лучший способ получить чистое сообщение после возврата каретки? Обратите внимание, что я не хочу разрывов строк.
ОБНОВЛЕНИЕ: @ user1981275 опубликовал решение, которое подтверждено для работы в Linux. Независимые от платформы решения по-прежнему востребованы.