r - 在R中将符号表达式作为函数的参数传递
问题描述
菜鸟问题,但我在任何地方都找不到答案。例如,我需要一个输入x^3-9*x
例如,我正在编写一个交互式应用程序,提示用户输入函数的符号表达式:
f=readline(prompt="A symbolic / mathematical function:")
那么,来自控制台的输入可能是:x^3-9*x
我需要让程序明白这f
是一个函数,而不仅仅是字符。
解决方案
您可以创建一个包装器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] -10
推荐阅读
- ios - UITableViewCell 内的 UITableView 未调整单元格高度
- node.js - 为什么我在提交添加了输入的表单时收到 400 bad request 错误?
- python - 如何在python中读取/打开受密码保护的xlsx文件
- sql-server - 它是如何工作的?- 查询中的多个子选择
- python - 如何在 django 序列化程序中加入模型?
- python - 为什么pytest在虚拟环境中看不到numpy安装?
- vue.js - 如何强制 `vt` 指令(或 `v-text`)仅替换 `
` 组件的一部分? - c# - 如何以编程方式授予虚拟用户对文件夹(或文件)的权限
- html - CSS 网格布局。可以设置或不设置包含徽标的行
- reactjs - 使用 react-beautiful-dnd 删除元素后,如何保持适当的间距?