readLines 功能与新版本的 R



我的函数是:

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 版本,在我输入数据后,程序不会继续执行。我直接从控制台调用脚本。

我使用各种 docker 映像的发现:

  • 该示例使用来自rocker/r-ver:3.4.4R version 3.4.4 (2018-03-15) -- "Someone to Lean On"工作正常。
  • 该示例挂起,如使用来自rocker/r-ver:3.5.0R version 3.5.0 (2018-04-23) -- "Joy in Playing"中所述。
  • 该示例挂起,如使用来自rocker/drdR Under development (unstable) (2018-05-19 r74746) -- "Unsuffered Consequences"中所述。

看起来版本 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"按预期工作。

  • 这被认为是一个错误,但目前还不清楚如何以及何时修复。

  • 合理的解决方法:除了行尾之外,还发送文件结尾(EOF、Ctrl-D(。

TLDR:使用stdin()

如果您使用stdin()而不是"标准",它可以正常工作....无论如何,我们都会推荐。

但可能,对于反向兼容性,"stdin"可能也应该工作((或者发出弃用警告并暂时工作(

相关内容

  • 没有找到相关文章

最新更新