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 X
with cells
x_{jk}
of a relation R
with tuples (a_j, b_k)
.
For the "PO"
(“Preference Order”) coding,
X
is a 0/1 matrix, and
a_j R b_k
iff x_{jk} = 1
. It follows in particular
that if both x_{jk}
and x_{kj}
are 0, the corresponding pair
(a_j, b_k)
is not contained in R, i.e., a_j
and b_k
are unrelated.
For the "SO"
(“"Strict Order"”) coding,
X
is a 0/1 matrix with possible
NA
values. As for "PO"
, a_j R b_k
iff
x_{jk} = 1
, but at most one of x_{jk}
and x_{kj}
can
be 1. If both are missing (NA
), a_j
and b_k
are unrelated.
For the "01"
coding, X
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, X
is a matrix with values -1, 0, or 1.
The coding is similar to "SO"
, except that NA
is
represented by 0, and x_{jk} = -1
if not a_j R b_k
.
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))