我想在运行时从用户那里读取一个数值表达式(例如:-9/3)并打印答案(3)。我使用了readline(),但由于它将行读取为字符串,因此当应用as. numeric()函数时,输出为NaN。如何将表达式转换为数值?这是我用的密码。表达式= readline(提示符="输入表达式:");exp = as. numeric(表达式)
k3fezbri1#
如果你想避免@BenBolker提到的危险,你可以使用Ryacas软件包:
library(Ryacas) expression <- readline(prompt = "Enter the expression : ") yac_str(expression)
kb5ga3dv2#
expression = readline(prompt = "Enter the expression : ") exp = eval(parse(text=expression))
system('del important_file.txt')
exp
expression
2条答案
按热度按时间k3fezbri1#
如果你想避免@BenBolker提到的危险,你可以使用Ryacas软件包:
kb5ga3dv2#
system('del important_file.txt')
)(要小心,您可以检查以确保用户输入的表达式不包含任何可疑字符-也许它只允许包含数字和数学运算符?)exp
和expression
也都引用R中的内置函数;这段代码可以工作,但最好避免使用现有函数的名称