R和Python中多项式输出的匹配顺序

7kjnsjlb  于 2023-02-10  发布在  Python
关注(0)|答案(1)|浏览(133)

我需要比较Python和R的三次多项式矩阵的输出。值看起来匹配,但顺序不对。有没有办法对R中的多边形输出进行排序,使其与Python中的一致?
示例数据:x = 2、3、4、5、6

    • Python代码:**
X = np.vstack([2,3,4,5,6]).T

poly = PolynomialFeatures(degree=3)
X_ = poly.fit_transform(X)
    • Python输出:**

阵列(1.,2.,3.,4.,5.,6.,4.,6.,8.,10.,12.,9.,12.,15.,18.,16.,20.,24.,25.,30.,36.,8.,12.,16.,20.,24.,18.,24.,30.,36.,32.,40、48、50、60、72、27、36、45、54、48、60、72、75、90、108、64、80、96、100、120、144、125、150、180、216.

    • R代码:**
x <- t(c(2, 3, 4, 5, 6))
dx <- c(1, as.numeric(poly(x, degree = 3, raw=TRUE)))
    • R输出:**

[1]1 2 4 8 3 6 12 9 18 27 4 8
[15]24 36 16 32 48 64 5 10 20 15 30 45
[29]60 80 25 50 75 100 125 6 12 24 18
[43]四十八七十二九十六三十六十九十一百二十一百五十三十六七十二一百零八一百四十四一百八十二百一十六

o7jaxewo

o7jaxewo1#

这似乎是这样做的:

x <- t(c(2, 3, 4, 5, 6))
p <- poly(x, degree = 3, raw=TRUE)
c(1, p[order(-attr(p, "degree"), colnames(p), decreasing = TRUE)])
#[1]   1   2   3   4   5   6   4   6   8  10  12   9  12  15  18  16  20  24  25  30  36   8  12  16  20  24  18  24  30  36  32
#[32]  40  48  50  60  72  27  36  45  54  48  60  72  75  90 108  64  80  96 100 120 144 125 150 180 216

相关问题