if(!require('PolynomF')) {
install.packages('PolynomF')
library('PolynomF')
}
(q <- polynom(c(0,2,2)))
例如这里它将打印 x,但我希望它打印 y,例如 2y + 2y^2
这里有两种方法。 (我用
p
代替 q
,因为 q
是基函数的名称。)
"x"
替换为 "y"
;"polynom"
类的对象调用 print 方法。
library(PolynomF)
(p <- polynom(c(0,2,2)))
#> 2*x + 2*x^2
gsub("x", "y", p)
#> [1] "2*y + 2*y^2"
print(p, variable = "y")
#> 2*y + 2*y^2
创建于 2023-02-12,使用 reprex v2.0.2
但是,函数
polynom
返回一个函数,而 gsub
返回一个字符串。为了避免错误或混乱,应该首选第二种方法,修改对象p
或创建另一个对象是没有意义的,如下p2
。
p2 <- gsub("x", "y", p)
p(0:4)
#> [1] 0 4 12 24 40
p2(0:4)
#> Error in p2(0:4): could not find function "p2"
创建于 2023-02-12,使用 reprex v2.0.2
作为补充,这是一种处理多元多项式的方法。
library(qspray)
x <- qlone(1)
y <- qlone(2)
pol <- x^2 + 3*y + 1
f <- as.function(pol)
f("x", "y")
# "x^2 + 3*y + 1"
f("a", "b")
# "a^2 + 3*b + 1"