transform {relations} | R Documentation |
Transform incidences
Description
Carry out transformations between incidence matrices from endorelations and other codings.
Usage
transform_incidences(x, from = c("PO", "SO", "01", "-1+1"),
to = c("PO", "SO", "01", "-1+1"))
Arguments
x |
An incidence matrix from an endorelation. |
from , to |
The coding scheme (see Details). |
Details
In the following, we consider an incidence matrix with cells
of a relation
with tuples
.
For the "PO"
(“Preference Order”) coding,
is a 0/1 matrix, and
iff
. It follows in particular
that if both
and
are 0, the corresponding pair
is not contained in R, i.e.,
and
are unrelated.
For the "SO"
(“"Strict Order"”) coding,
is a 0/1 matrix with possible
NA
values. As for "PO"
, iff
, but at most one of
and
can
be 1. If both are missing (
NA
), and
are unrelated.
For the "01"
coding, is a matrix with values 0, 1, or
0.5. The coding is similar to
"SO"
, except that NA
is
represented by 0.5.
For the "-1+1"
coding, is a matrix with values -1, 0, or 1.
The coding is similar to
"SO"
, except that NA
is
represented by 0, and if not
.
See Also
Examples
require("sets") # set(), pair() etc.
x <- relation(domain = c(1,2,3,4),
graph = set(pair(1,2), pair(4,2), pair(1,3), pair(1,4),
pair(3,2), pair(2,1)))
inc <- relation_incidence(x)
print(inc)
transform_incidences(inc, to = "SO")
transform_incidences(inc, to = "01")
transform_incidences(inc, to = "-1+1")
## transformations should be loss-free:
inc2 <- transform_incidences(inc, from = "PO", to = "-1+1")
inc2 <- transform_incidences(inc2, from = "-1+1", to = "SO")
inc2 <- transform_incidences(inc2, from = "SO", to = "01")
inc2 <- transform_incidences(inc2, from = "01", to = "PO")
stopifnot(identical(inc, inc2))