функция readLines с новой версией R - PullRequest
0 голосов
/ 16 мая 2018

Моя функция:

create_matrix <- function() {
  cat("Write the numbers of vertices: ")
  user_input <- readLines("stdin", n=1)
  user_input <- as.numeric(user_input)
  print(user_input)
  }

В версии 3.5.0 после ввода данных программа не продолжает выполнение. Я вызываю скрипт прямо из консоли.

Ответы [ 2 ]

0 голосов
/ 28 мая 2018

TLDR: использование stdin()

Работает нормально, если вы используете stdin() вместо "stdin" .... что мы все равно рекомендовали бы.

Но, вероятно, для обратной совместимости "stdin" тоже, вероятно, должен работать ((или сигнализировать об устаревании и работать пока)

0 голосов
/ 22 мая 2018

Мои выводы с использованием различных изображений докера:

  • Пример отлично работает, используя R version 3.4.4 (2018-03-15) -- "Someone to Lean On" из rocker/r-ver:3.4.4.
  • Пример зависает, как описано, используя R version 3.5.0 (2018-04-23) -- "Joy in Playing" из rocker/r-ver:3.5.0.
  • Пример зависает, как описано, используя R Under development (unstable) (2018-05-19 r74746) -- "Unsuffered Consequences" из rocker/drd.

Похоже, что изменение, упомянутое в примечаниях к выпуску для версии 3.5.1, не связано. Я отправил свои результаты на r-devel и сообщу результат:

  • Пример отлично работает, используя R version 3.5.1 (2018-07-02) -- "Feather Spray"
  • Ошибка помечена как исправленная. Могу утверждать, что версия R Under development (unstable) (2018-06-02 r74838) -- "Unsuffered Consequences" работает как положено.

  • Этот считается ошибкой , но неясно, как и когда он будет исправлен.

  • A разумный обходной путь : отправка конца файла (EOF, Ctrl-D) в дополнение к концу строки.

...