我制作了一个增广系数矩阵函数来求解线性方程组,并且我在使用deparse()
函数对R中的函数进行离散时遇到了一些不一致的问题。
输入:
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)
输出:
> 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"
正如您所看到的,每当我运行该脚本时,出于某种原因,departingyield5返回一个由3个元素组成的字符,其中departingotherfunctions只会产生2个元素。这打破了我为AugCoeffMatrix创建的程序。有人知道R为什么这么做吗?
我已经尝试过以下操作:
- 重写函数(相同问题(
- 更改函数名称(相同问题(
- 删除了所有功能空间(相同问题(
- 添加大括号(相同问题(
- 更改常数值(相同问题(
- 更改了最后一个符号运算符(相同问题(
编辑:将函数参数的宽度上限调整为更高的整数值解决了此问题。
尝试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"