如何将Ryacas的解决方案转化为字符串?

How to transform solution of Ryacas into character string?

我想找出 Ryacas 给我的字符串形式的解决方案 - 但它不起作用:

> require("Ryacas")
> x <- Sym("x")
> expr <- Solve(x + 1 == 0, x)
> expr
expression(list(x == -1))
> as.character(expr)
[1] "( Solve( ( ( x + 1 ) == 0 ) , x ) )"

奇怪的是,当我打印变量时,我得到了 ,但是当我尝试将其作为字符串读出时,我得到了 原始方程.

我的问题
如何将Ryacas的solution转成字符串? (以便我可以使用标准 R 进一步修改它?)

如果你想把那个表达式变成一个字符串,你应该使用Eval()来获得评估的结果

Eval(expr)
# [[1]]
# expression(x == -1)

如果你想将结果提取为一个字符,在这种情况下你可以这样做

Eval(expr)[[1]][[1]]
# [1] "( x == -1 )"