如何让R语言计算动态生成的表达式字符串并返回布尔结果?
R语言字符串表达式求值解决方案
你遇到的问题是因为parse()默认是读取文件路径而非直接解析字符串,所以会报错"cannot open the connection"。正确的做法是给parse()指定text参数,把拼接好的字符串作为表达式文本传入,再用eval()执行。
基础R实现代码
x <- 0 y <- '<' z <- 1 # 拼接表达式字符串 expr_str <- paste(x, y, z) # 解析并执行表达式 eval(parse(text = expr_str)) # 输出 TRUE
补充:用rlang包简化操作
如果习惯用tidyverse工具链,也可以用rlang包的函数更直观处理:
library(rlang) eval_tidy(parse_expr(expr_str)) # 同样返回 TRUE
⚠️ 注意:直接解析并执行字符串形式的代码存在安全风险,若字符串来自不可信外部输入,请勿使用该方法。
内容的提问来源于stack exchange,提问作者Sweepy Dodo
相关产品推荐
相关产品推荐

