multiMatch | R Documentation |
This function allows convenient matching of multi-to-multi relationships between two objects/vectors.
It was designed for finding common elements in multiple to multiple matching situations (eg when comparing c("aa; bb", "cc")
to c("bb; ab","dd")
,
ie to find 'bb' as matching between both objects).
multiMatch(
x,
y,
sep = "; ",
sep2 = NULL,
method = "byX",
silent = FALSE,
debug = FALSE,
callFrom = NULL
)
x |
(vector or list) first object to compare; if vector, the (partially) concatenated identifyers (will be split using separator |
y |
(vector or list) second object to compare; if vector, the (partially) concatenated identifyers (will be split using separator |
sep |
(character, length=1) separator used to split concatenated identifyers (if |
sep2 |
(character, length=1) optional separator used when |
method |
(character) mode of operation: 'asIndex' to return index of y (those hwo have matches) with names of x (which x are the correpsonding match) |
silent |
(logical) suppress messages |
debug |
(logical) display additional messages for debugging |
callFrom |
(character) allow easier tracking of message(s) produced |
method='byX'
.. returns data.frame with view oriented towards entries of x
: character column x
for entire content of x
; integer column x.Ind
for index of x
;
character column TagBest
for most frequent matching isolated tag/ID; integer column y.IndBest
index of most frequent matching y
;
character column y.IndAll
index for all y
matching any of the tags;
character column y.Match
for entire content of best matching y
;
character column y.Adj
for y
adjusted to best matching y
for easier subsequent perfect matching.
method=c("byX","filter")
.. combinded argument to keep only lines with any matches
method='byTag'
.. returns matrix (of integers) from view of isolated tags from x
(a separate line for each tag from x
matching to y
);
method=c("byTag","filter")
..if combined as arguments, this will return a data.frame for all unique tags with any matches between x
and y
, with
additional colunms x.AllInd
for all matching x
-indexes, y.IndBest
best matching y
index; x.n
for number of different x
conatining this tag;
y.AllInd
for all matching y
-indexes
method='adjustXtoY'
.. returns vector with x
adjusted to y
, ie those elements of x
matching are replace by the exact corresponding term of y
.
method=NULL
.. If no term matching the options shown above is given, another version of 'asIndex' is returned, but indexes to y
_after_ spliting by sep
.
Again, this method can be filtered by using method="filter"
to focus on the best matches to x
.
matrix, data.frame or list with matching results depending on method
chosen
match
; strsplit
aa <- c("m","k", "j; aa", "m; aa; bb; o; ee", "n; dd; cc", "aa", "cc")
bb <- c("dd; r", "aa", "ee; bb; q; cc", "p; cc")
(match1 <- multiMatch(aa, bb, method=NULL)) # match bb to aa
(match2 <- multiMatch(aa, bb, method="byX")) # match bb to aa
(match3 <- multiMatch(aa, bb, method="byTag")) # match bb to aa
(match4 <- multiMatch(aa, bb, method=c("byTag","filter"))) # match bb to aa
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.