abbreviate {base}R Documentation

Abbreviate Strings

Description

Abbreviate strings to at least minlength characters, such that they remain unique (if they were).

Usage

abbreviate(names.arg, minlength = 4, use.classes = TRUE,
           dot = FALSE)

Arguments

names.arg a character vector of names to be abbreviated, or an object to be coerced to a character vector by as.character.
minlength the minimum length of the abbreviations.
use.classes logical (currently ignored by R).
dot logical: should a dot (".") be appended?

Details

The algorithm used is similar to that of S. For a single string it works as follows. First all spaces at the beginning of the string are stripped. Then (if necessary) any other spaces are stripped. Next, lower case vowels are removed (starting at the right) followed by lower case consonants. Finally if the abbreviation is still longer than minlength upper case letters are stripped.

Characters 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.

Missing (NA) values are unaltered.

If use.classes is FALSE then the only distinction is to be between letters and space. This has NOT been implemented.

Value

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: no other attributes are retained.

Warning

This is really only suitable for English, and does not work correctly with non-ASCII characters in multibyte locales. It will warn if used with non-ASCII characters.

See Also

substr.

Examples

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

[Package base version 2.5.0 Index]