如何用R语言中的“y”替换多项式中的x?

问题描述 投票:0回答:2
if(!require('PolynomF')) {
    install.packages('PolynomF')
    library('PolynomF')
    }

(q <- polynom(c(0,2,2)))

例如这里它将打印 x,但我希望它打印 y,例如 2y + 2y^2

r polynomials
2个回答
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


0
投票

作为补充,这是一种处理多元多项式的方法。

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"
© www.soinside.com 2019 - 2024. All rights reserved.