刚开始使用R.与任何语言一样,我希望能够以交互方式快速地完成一个程序。
我经常写一些像(伪代码)
的东西get_char(char)
if (char == 'q') {return}
if (char == 'a') {list.append(blah)}
if (char is anything else) {just move along}
q用于退出,a用于追加,它们都在我的左手在键盘上,所以这是尽可能快。
我在R中看到我可以使用
char=readline("Type a character and hit Enter")
但当然我必须输入。有没有办法在R中找到一个角色?
答案 0 :(得分:6)
不能直接回答您的问题,但您可以使用debug
来获取所需的行为。如果您有要测试的功能,则调用debug(myfunction)
会设置R的调试器,这样当您下次调用myfunction()
时,它会一次执行一行。如果在调试器中按Enter键,它将逐步进入函数的下一行。如果要检查函数范围内的任何数据,或运行任何其他任意R代码,也可以这样做,因为调试器提供对所有常规R函数的访问。
对于用户提示单个字符不是很想做什么,但是对于调试我觉得这个功能要强大得多。
答案 1 :(得分:0)
sudoku::playSudoku
功能显示了一种方法。在Windows上,getGraphicsEvent
函数提供键盘输入的回调;在其他设备上,您可以使用Tk小部件。
然而,需要打开图形设备。
以下是windows的示例:
dev.new()
getGraphicsEvent(
"",
onKeyb=function(x)
if(tolower(x)=="q")
return(1)
else
cat("you pressed a key.\n")
)