Zrobiłem monryx Augmented Matrix , aby rozwiązać systemy równań liniowych i napotkałem pewne niespójności na funkcji Depararsing w R za pomocą funkcji deparse().}.

Dane wejściowe:

yield4 <- function(x1,x2,x3,x4,x5) 153.7 * x1 + 94.2 * x2 + 79.5 * x3 + 200 * x4 + 200 * x5 + -298.3
yield5 <- function(x1,x2,x3,x4,x5) 144.2 * x1 + 91.5 * x2 + 78.2 * x3 + 137.3 * x4 + 200 * x5 + -288.7

deparse(yield4)
deparse(yield5)

Wynik:

> deparse(yield4)
[1] "function (x1, x2, x3, x4, x5) "                                   
[2] "153.7 * x1 + 94.2 * x2 + 79.5 * x3 + 200 * x4 + 200 * x5 + -298.3"
> deparse(yield5)
[1] "function (x1, x2, x3, x4, x5) "                               
[2] "144.2 * x1 + 91.5 * x2 + 78.2 * x3 + 137.3 * x4 + 200 * x5 + "
[3] "    -288.7" 

Jak widać, Ilekroć uruchamiam ten skrypt, z jakiegoś powodu Deparsing Resed5 zwraca znak 3 elementów, w których Deparsing innymi funkcjami powoduje tylko 2 elementy. To przełamuje program stworzony dla Aurcoeffmatrix. Każdy wie, dlaczego to robi?

Wypróbowałem już następujące elementy:

  • Przepisanie funkcji (ten sam problem)
  • Zmiana nazwy funkcji (ten sam problem)
  • Usunięto wszystkie przestrzenie funkcyjne (ten sam problem)
  • Dodano kręcone klamry (ten sam problem)
  • Zmiana stałej wartości (ten sam problem)
  • Zmieniono ostatnie operatorzy znaków (ten sam problem)

Edytuj: Regulacja szerokości

1
Dave Cordero 13 październik 2020, 15:23

1 odpowiedź

Najlepsza odpowiedź

Spróbuj deparse1 (R 4.0+):

deparse1(yield4)
## [1] "function (x1, x2, x3, x4, x5)  153.7 * x1 + 94.2 * x2 + 79.5 * x3 + 200 * x4 + 200 * x5 + -298.3"

deparse1(yield5)
## [1] "function (x1, x2, x3, x4, x5)  144.2 * x1 + 91.5 * x2 + 78.2 * x3 + 137.3 * x4 + 200 * x5 + -288.7"
1
G. Grothendieck 13 październik 2020, 12:36