使用中缀表示法将语言类型转换为 R 中的字符串

Converting language type to string in R using infix notation

假设我在 R 中有以下表达式:

someExpr <- substitute(a+2*b)

现在我想看一下这个的子表达式,比方说 2*b 并生成字符串 "2*b"。我访问子表达式:

someExpr[[3]]
2 * b

类型是语言,class是call

typeof(someExpr[[3]])
[1] "language"

我试图用 toStringas.character 天真地转换它,但后来我总是得到前缀顺序:

toString(someExpr[[3]])
[1] "*, 2, b"
as.character(someExpr[[3]])
[1] "*" "2" "b"

是否可以获取中缀表示法的字符串?

您可以使用 deparse :

someExpr <- substitute(a+2*b)
result<-deparse(someExpr[[3]])
result
[1] "2 * b"

str(result)
chr "2 * b"