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