Learn R Programming

editrules (version 2.9.5)

substValue: Replace a variable by a value in a set of edits.

Description

Replace a variable by a value in a set of edits.

Usage

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, ...)

Value

E, with variables replaced by values

Arguments

E

editset, editmatrix, editarray, editlist or editenv

var

character with name(s) of variable(s) to substitute

value

vector with value(s) of variable(s)

...

arguments to be passed to or from other methods

reduce

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.

removeredundant

logical. Should empty rows be removed?

simplify

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).

References

Value substitution is extensively described in the package vignettes.

See Also

eliminate

Examples

Run this code


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