我在R中使用一个类似于交互式shell的工具,它使用readline
来提示stdin,如下所示:
console <- function(){
while(nchar(input <- readline(">>> "))) {
message("You typed: ", input)
}
}
它有效,但唯一困扰我的是以这种方式输入的行不会被推到历史堆栈上。按R中的向上箭头可显示在启动控制台之前输入的最后一个R命令。
有没有办法在历史堆栈上手动推送input
行,按下向上箭头会显示在控制台功能中输入的最新行?
答案 0 :(得分:1)
我在rite中使用它来向命令历史添加命令。实质上,您可以从本地文件中savehistory
和loadhistory
。我这样做:
tmphistory <- tempfile()
savehistory(tmphistory)
histcon <- file(tmphistory, open="a")
writeLines(code, histcon)
close(histcon)
loadhistory(tmphistory)
unlink(tmphistory)
注意:Mac doesn't use history in the same way as other OS's,所以要小心。