提示用户输入作为对 R 中脚本外函数的引用的一部分

Prompting for user input as part of a reference to an out-of-script function in R

我遇到的问题与 中描述的问题类似,但我的问题涉及在脚本 1 中从存储该函数的第二个脚本调用函数。本质上 script1.Rscript2.Rfoo() 中引用了 foo() 我有一行提示用户从控制台输入。但是,当我 运行 foo()script1.R 里面时,它根本不提示。我试图将 foo() 的逻辑括在方括号中,并定义函数本身(因此在此处引用为 foo()),但均无效。值得注意的是,script2.R 是创建函数的集中脚本,而 foo() 本身是在 script2.R 中的较大函数内部定义的较小辅助函数。所以真的是:

#script1.R
dt <-setDT(fread(`imported_data.csv`))
dt <- standardization_function(dt)

standardization_function()住在script2.R

#script2.R
standardization_function <-function(dataset, column_to_mutate) {
#mutations occur
foo <- function() {
 disp <- readline(prompt = 'Do you want to see a list of unmatched entries? (y/n)')
 disp <- toupper(disp)
 if(disp == 'Y'){
      cat('The unmatched entries are:\n')
      cat(unmatched)
  }
 }

 foo()
}

这似乎与将整个函数作为可执行代码块进行处理有关,但是在 {} 中定义函数也不包含 foo 的逻辑(没有定义函数)能够克服这一点。

问题出在辅助功能的范围内。它需要在 foo() 代码的主块之外定义,以便向用户提示 readline。