我有以下字符"column == 5",我想将其转换为sql:column = 5。我该怎么做?
我尝试了很多方法,但都没有成功,例如:
translate_sql(eval(parse(text="column + 5")))但是translate_sql是一个“文字”环境,它返回<SQL> EVAL(PARSE('column + 5' AS "text"))。
我知道一定有什么诡计!
发布于 2016-08-09 10:49:06
您所称的“文字”环境通常称为非标准评估(NSE)函数。一般来说,有不同的方法来解决这些问题,但是通过为所有的NSE函数提供标准的评估伙伴来简化了这一点。
translate_sql的标准评估形式称为translate_sql_。
translate_sql_("column + 5")此外,与解析字符串输入相比,采用直接方式通常更容易:
translate_sql_(quote(column + 5))在您的例子中没有太大的差别,但是在许多情况下,底部的表单更有用,因为它是一个可以使用R方法操作的R对象。操作字符串输入使其在语法上仍然正确,这要困难得多(而且,毫不奇怪,效率也较低)。
https://stackoverflow.com/questions/38848615
复制相似问题