#r
#r
Вопрос:
Как я могу получить ввод с клавиатуры пользователя в текущей строке консоли R?
У меня есть предыдущий вывод из cat, и теперь мне нужно a readline(prompt="")
в той же строке.
Т.Е. перед приглашением не должно быть разрыва строки.
Я cat("Dummy") ; readline("r Type sth: ")
пытался безрезультатно.
Я не могу включить «Фиктивный» в вызов приглашения, поскольку предполагается, что это двухэтапный процесс (некоторая информация в консоли, запрос пользовательского ввода, дополнительная информация в той же строке, запрос второго пользовательского ввода).
Редактировать: я придумал кое-что, что технически работает, но не элегантно:
{
cat("14") # clear the entire console
p1 <- readline("prompt1: ")
cat("14") # clear again, then repeat previous text
p2 <- readline(paste0("promt1: ", p1, ". prompt2: "))
}
По-прежнему требуется вариант без очистки консоли.
Комментарии:
1. Если я правильно понимаю, если вы включаете это в функцию с именем
func
, то, когда пользователь вводит и видит:> func()
, вы хотите, чтобы это было удалено / перезаписаноType sth:
. Это правильно? (Кстати:readLine
(верхний-L), не удалось найти функцию, вы имеете в видуreadline
(нижний-L)`?)2. да, строчная буква L — изменила ее в вопросе.
Tpe sth
должно быть добавлено к существующей строке.3. Когда вы вводите функцию, вам нужно нажать enter, чтобы интерпретатор проанализировал и выполнил то, что вы ввели. Это само по себе добавляет CR (и LF), прежде чем интерпретатор даже получит шанс на это. Поэтому я не думаю, что то, что вы просите, выполнимо для большинства (если не для всех) R IDE (например, RStudio desktop / web-client, emacs / ess, Jupyter). Почему именно вы хотите такого поведения? Это кажется немного эзотерическим и, возможно (я здесь растягиваю), эстетическим.
4. На самом деле это делается для проверки прогресса в обучении: отображается вопрос, также вводится ответ, и на последнем шаге записывается субъективная оценка успеха. На данный момент я придерживаюсь очистки консоли, потому что остальное действительно вопрос эстетики. Спасибо за объяснение!
5. Вы нашли решение этой проблемы нежелательной строки разрыва с
readline
помощью? У меня такая же проблема