如何在R脚本中自动回应函数的控制台输入提示?
解决estadistica包tabla.frecuencias函数自动回应控制台提示的问题
当使用estadistica包的tabla.frecuencias函数时,该函数会通过控制台提示询问是否将数值分组为区间,需手动输入回应才能继续。要实现自动处理,可通过以下两种方法:
方法一:使用withr包模拟输入流(推荐)
withr包的with_input函数可预先模拟控制台输入,避免手动干预:
# 安装并加载withr包(首次使用需安装) install.packages("withr") library(withr) library(estadistica) # 自动输入"y"并回车(若不想分组则替换为"n") with_input("y\n", { tabla.frecuencias(mtcars$mpg) })
\n代表模拟按下回车键,确保函数能正确识别输入指令。
方法二:临时替换readline函数(无需额外包)
该函数的提示依赖readline获取输入,可临时替换readline让它直接返回预设回应:
library(estadistica) # 保存原readline函数 original_readline <- readline # 替换为返回预设值("y"表示同意分组,"n"表示不分组) readline <- function(...) "y" # 调用目标函数 tabla.frecuencias(mtcars$mpg) # 恢复原readline函数,避免影响其他代码 readline <- original_readline
内容的提问来源于stack exchange,提问作者Carles Gomar
相关产品推荐
相关产品推荐

