在批处理模式下执行R代码时的用户输入

我正在寻找一种在批处理模式下执行时在循环内获取用户输入的方法.

readLines()和scan()仅适用于交互模式,在批处理模式下,它们开始以代码行的形式读取用户输入,除非所有代码都被{}包围,这是不方便的.我需要一个简单的解决方案,只需输入一个整数值,我只需输入值并按ENTER即可

>输入字段(如果解决方案涉及GUI)必须自动获得焦点和
> ENTER必须触发输入/提交结束.

我无法找到满足这两个条件的方法,例如:来自gWidgets的ginput()激活输入字段,但ENTER不会触发表单提交.

最佳答案 更新:

我现在无法测试这个,但看一下?菜单,让它弹出一个gui窗口.
我不确定这是否可行,但它的不同之处在于需要鼠标点击响应.

原始答案:

根据文档到?readline:

This can only be used in an interactive session.
..
In non-interactive use the result is as if the response was RETURN and the value is “”.

如果您只是在等待一条信息,并且在开始执行脚本之前您不知道这条信息(可能是根据脚本中较早的结果做出决定),那么另一种方法是简单地将您的脚本分为三个部分:

>决定点之前的一切.
>提示输入的交互式脚本
>决定点之后的一切.

并且通过在交互式会话中调用第二个端点来将三个链接在一起.然后通过调用第三个结束第二个结束.

点赞