
Last chance! 50% off unlimited learning
Sale ends in
Replace a variable by a value in a set of edits.
substValue(E, var, value, ...)# S3 method for editmatrix
substValue(E, var, value, reduce = FALSE, removeredundant = TRUE, ...)
# S3 method for editarray
substValue(E, var, value, reduce = FALSE, ...)
# S3 method for editset
substValue(E, var, value, simplify = TRUE, ...)
# S3 method for editlist
substValue(E, var, value, ...)
# S3 method for editenv
substValue(E, var, value, ...)
E
, with variables replaced by values
editset
, editmatrix
, editarray
,
editlist
or editenv
character
with name(s) of variable(s) to substitute
vector with value(s) of variable(s)
arguments to be passed to or from other methods
logical
should the result be simplified? For editmatrix
this has the same effect
as calling the function reduce
. For editarray
, the datamodel of the substituted variable
is reduced to a single value, and the variable itself is not removed.
logical
. Should empty rows be removed?
Simplify editset by moving logical edits containing a single numerical statement to the pure numerical part? (This is mostly for internal purposes and overwriting the default should normally not be necessary for package users).
Value substitution is extensively described in the package vignettes.
eliminate
E <- editmatrix(expression(
x + y == z,
2*y < 10,
3*x + 1.5*u < 7,
z >= 0
)
)
# single value
substValue(E,'z',10)
# multiple values
substValue(E,c('x','y'),c(1,3))
# remove substituted variable from edits
substValue(E,'z',10,reduce=TRUE)
# do not remove redundant row:
substValue(E,'z',10,removeredundant=FALSE)
# example with an editset
E <- editset(expression(
x + y == z,
x >= 0,
y >= 0,
A %in% c('a1','a2'),
B %in% c('b1','b2'),
if ( x > 0 ) y > 0,
if ( y > 0 ) x > 0,
if ( A == 'a' ) B == 'b',
if ( A == 'b' ) y > 3
)
)
# substitute pure numerical variable
substValue(E,'z',10)
# substitute pure categorical variable
substValue(E,'A','a1')
# substitute variable appearing in logical constraints
substValue(E,'x',3)
Run the code above in your browser using DataLab