我正在寻找一种在批处理模式下执行时在循环中获取用户输入的方法。readLines()
和 scan()
仅在交互模式下对我有用,在批处理模式下,他们开始读取代码行作为用户输入,除非所有代码都被 {}
包围。 ,这很不方便。我需要一个简单的解决方案来获得 1 个整数值,我只需输入值并按 ENTER,所以
我找不到满足这两个条件的方法,例如
ginput()
from gWidgets 激活输入字段,但 ENTER 不会触发表单提交。
最佳答案
这是我如何解决自己的问题:
require(gWidgets)
options(guiToolkit="RGtk2")
INPUT <- function(message) {
CHOICE <- NA
w <- gbasicdialog(title=message, handler = function(h,...) CHOICE <<- svalue(input))
input <- gedit("", initial.msg="", cont=w, width=10)
addHandlerChanged(input, handler=function (h, ...) {
CHOICE <<- svalue(input)
dispose(w)
})
visible(w, set=TRUE)
return(CHOICE)
}
repeat{
x=INPUT("Input an integer")
if(!is.na(as.integer(x))) break
}
print(x)
关于r - 以批处理模式执行 R 代码时的用户输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16537749/