如何在R语言中将字符串形式的表达式转换为实际数值?
在R中计算字符串形式的数学表达式
基础R核心解法
要计算字符串里的数学表达式,得先把字符串转成R能识别的表达式对象,再求值。直接用eval()不行,得配合parse():expr_str <- "(1+1)*2" result <- eval(parse(text = expr_str)) print(result) # 输出 4为啥之前的方法没效果?
eval()只能处理R原生的表达式对象,没法直接解析字符串;as.formula()是用来做统计公式(比如y ~ x这种)的,和普通数学表达式不搭。
可选的tidyverse方案
如果常用tidyverse工具,用rlang包的函数更稳妥:library(rlang) expr_str <- "(1+1)*2" result <- eval_tidy(parse_expr(expr_str)) print(result) # 输出 4
内容的提问来源于stack exchange,提问作者Guibor Camargo Salamanca
相关产品推荐
相关产品推荐

