如何在R studio中读取用户的数值表达式

vu8f3i0k  于 2023-03-05  发布在  其他
关注(0)|答案(2)|浏览(77)

我想在运行时从用户那里读取一个数值表达式(例如:-9/3)并打印答案(3)。我使用了readline(),但由于它将行读取为字符串,因此当应用as. numeric()函数时,输出为NaN。如何将表达式转换为数值?
这是我用的密码。
表达式= readline(提示符="输入表达式:");
exp = as. numeric(表达式)

k3fezbri

k3fezbri1#

如果你想避免@BenBolker提到的危险,你可以使用Ryacas软件包:

library(Ryacas)
expression <- readline(prompt = "Enter the expression : ")
yac_str(expression)
kb5ga3dv

kb5ga3dv2#

expression = readline(prompt = "Enter the expression : ")
exp = eval(parse(text=expression))
  • 这是潜在的危险(用户可以输入,例如,system('del important_file.txt'))(要小心,您可以检查以确保用户输入的表达式不包含任何可疑字符-也许它只允许包含数字和数学运算符?)
  • expexpression也都引用R中的内置函数;这段代码可以工作,但最好避免使用现有函数的名称

相关问题