提示用户输入作为对 R 中脚本外函数的引用的一部分
Prompting for user input as part of a reference to an out-of-script function in R
我遇到的问题与 中描述的问题类似,但我的问题涉及在脚本 1 中从存储该函数的第二个脚本调用函数。本质上 script1.R
在 script2.R
和 foo()
中引用了 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。
我遇到的问题与 script1.R
在 script2.R
和 foo()
中引用了 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。