abbreviate {base} | R Documentation |
Abbreviate strings to at least minlength
characters,
such that they remain unique (if they were).
abbreviate(names.arg, minlength = 4, use.classes = TRUE, dot = FALSE)
names.arg |
a vector of names to be abbreviated. |
minlength |
the minimum length of the abbreviations. |
use.classes |
logical (currently ignored by R). |
dot |
logical; should a dot ("." ) be appended? |
The algorithm used is similar to that of S.
First spaces at the beginning of the word are stripped.
Then any other spaces are stripped.
Next lower case vowels are removed followed by lower case consonants.
Finally if the abbreviation is still longer than minlength
upper case letters are stripped.
Letters are always stripped from the end of the word first.
If an element of names.arg
contains more than one word (words
are separated by space) then at least one letter from each word will be
retained.
If a single string is passed it is abbreviated in the same manner as a
vector of strings.
Missing (NA
) values are not abbreviated.
If use.classes
is FALSE
then the only distinction is to
be between letters and space. This has NOT been implemented.
A character vector containing abbreviations for the strings in its
first argument. Duplicates in the original names.arg
will be
given identical abbreviations. If any non-duplicated elements have
the same minlength
abbreviations then minlength
is
incremented by one and new abbreviations are found for those elements
only. This process is repeated until all unique elements of
names.arg
have unique abbreviations.
The character version of names.arg
is attached to the returned
value as a names argument.
This is really only suitable for English, and does not work correctly with non-ASCII characters in UTF-8 locales. It will warns if used with non-ASCII characters.
x <- c("abcd", "efgh", "abce") abbreviate(x, 2) (st.abb <- abbreviate(state.name, 2)) table(nchar(st.abb))# out of 50, 3 need 4 letters