R:用户以交互方式提供数学函数

R:用户以交互方式提供数学函数,r,R,我正在开发一个R脚本,它以数字方式解决并绘制两人同时移动的非合作游戏,其中用户以交互方式提供玩家的支付函数。最终这将是一个闪亮的应用程序,但现在我使用的是readline()。我只是想知道是否有更好的方法让用户提供支付功能 user_input <- readline(prompt="enter a function of x and y (e.g. x^2+y^2-x*y): ") func_text <- paste0("as.function(al

我正在开发一个R脚本,它以数字方式解决并绘制两人同时移动的非合作游戏,其中用户以交互方式提供玩家的支付函数。最终这将是一个闪亮的应用程序,但现在我使用的是readline()。我只是想知道是否有更好的方法让用户提供支付功能

user_input <- readline(prompt="enter a function of x and y (e.g. x^2+y^2-x*y): ")
func_text <- paste0("as.function(alist(x=,y=,",user_input,"))")
the_func <- eval(parse(text=func_text))
print(paste0("the value of your function at (x,y)=(10,10) is: ",the_func(10,10)))

user\u input将函数定义更改为此解决了问题


user\u输入我会认真考虑选择不同的方式来获取和解析用户输入。什么能阻止用户输入一条线来擦拭你的硬盘呢?@AllanCameron也会这么说。这可能是(非常)糟糕的一天。@AllanCameron也许你不应该把代码放在那里,而是说它做了什么。如果有人运行它试图找出答案,那将是非常困难的bad@stevec说得好。修改:)相关:我添加了
\\^\\(\\)
以允许使用多项式函数。干杯,注意在R
**
^
中,我建议使用这个正则表达式然后
^([xy+/*^()-]|\\d)+$
@richardmatin