新手的问题但我哪儿都找不到答案。我需要一个输入,例如x^3-9*x
例如,我正在编写一个交互式应用程序,提示用户输入一个函数的符号表达式:
f=readline(prompt="A symbolic / mathematical function:")然后,控制台的输入可以是:x^3-9*x
我需要让程序理解f是一个函数,而不仅仅是字符。
发布于 2021-04-19 16:04:31
您可以在readline()周围创建一个包装器,它捕获字符串输入,然后创建一个函数。下面是一个使用rlang的示例。单个参数x是硬编码的,但可以使其更高级。
readline_fn_x <- function(prompt) {
fn_str <- readline(prompt = prompt)
rlang::new_function(rlang::pairlist2(x = ), rlang::parse_expr(fn_str))
}这将返回一个函数。在这里,它是在f(2)上评估的
> f <- readline_fn_x(prompt="A function pls:")
A function pls:x^3-9*x
> f(2)
[1] -10https://stackoverflow.com/questions/67164463
复制相似问题