Function to generate random gender and ethnicity correct first and/or last names. Names are chosen proportionally based upon their probability of appearing in a large scale database of real names. Function to generate random gender and ethnicity correct first and/or/last names. The function probabilistically samples from the embedded randomNamesData dataset to provide a realistic list of first and/or last names.

randomNames(n,
            gender,
            ethnicity,
            which.names="both",
            name.order="last.first",
            name.sep=", ",
            sample.with.replacement=TRUE,
            return.complete.data=FALSE)

Arguments

n

OPTIONAL. Positive integer indicating how many name to produce. Best to use when no gender or ethnicity data is provided and one simply wants n random first and/or last names.

gender

OPTIONAL. A vector indicating the genders for the names to be calculated. The maximum of n, the length of gender and the length of ethnicity is the number of random names returned. Note that the gender vector is only employed for deriving first names. If no gender vector is provided, the function randomly samples from both genders to produce a sample of names. Current gender codes are 0: Male and 1: Female. See examples for various use cases.

ethnicity

OPTIONAL. A vector indicating the ethnicities for the names to be calculated. The maximum of n, the length of gender and the length of ethnicity is the number of random names returned. Note that the ethnicity vector is employed for both deriving first and last names. If no ethnicity vector is provided the function samples from all ethnicity to produce a sample of names. Current ethnicity codes are:

1

American Indian or Native Alaskan

2

Asian or Pacific Islander

3

Black (not Hispanic)

4

Hispanic

5

White (not Hispanic)

6

Middle-Eastern, Arabic

which.names

OPTIONAL. One of "both" (the default), "first", or "last", "complete.data" indicating what names to produce. "complete.data" provides a data.table with ethnicity and gender codes.

name.order

OPTIONAL. If which.names is "both", then names can be returned as either "last.first" (the default) or "first.last".

name.sep

OPTIONAL. If which.names is "both", then names are separated by the name.sep string provided. Defaults to comma-space separated.

sample.with.replacement

Boolean argument (defaults to TRUE) indicating whether sampling is done with replacement.

return.complete.data

Boolean argument (defaults to FALSE) indicating whether to return data including gender and ethnicity codes used for name construct. If set to TRUE, data is returned as a data.frame/data.table.

Details

Typical use of the function is to submit a vector of genders and ethnicities to derived a gender and ethnicity representative vector of first and/or last names.

Value

Function returns a character vector containing first and/or last names.

See also

randomNamesData

Examples

randomNames() ## Returns a single name in "last, first" format
#> [1] "al-Hai, Musaddiq"
randomNames(5, which.names="first") ## Returns 5 first names
#> [1] "Connor" "Abdul Kader" "Faran" "Dakota" "Katie"
randomNames(5, return.complete.data=TRUE) ## Returns entire data.table
#> gender ethnicity first_name last_name #> 1: 1 6 Rafeeqa al-Harron #> 2: 0 5 Noah Telschow #> 3: 1 1 Diana Yellowhawk #> 4: 1 4 Jerika Payne #> 5: 0 5 Jacob Selting
test.df <- data.frame(GENDER=sample(0:1, 100, replace=TRUE), ETHNICITY=sample(1:6, 100, replace=TRUE)) test.names <- randomNames(gender=test.df$GENDER, ethnicity=test.df$ETHNICITY) head(test.names)
#> [1] "al-Saadeh, Baaqir" "Padilla, Danielle" "al-Mahmoud, Zaaid" #> [4] "Vergara, Marisela" "Lee, Cordelia" "al-Zaman, Ikram"
ethnicities <- c("African American", "Hispanic", "Asian", "White", "Native American") genders <- c("Female", "Male") test.df <- data.frame(GENDER=sample(genders, 100, replace=TRUE), ETHNICITY=sample(ethnicities, 100, replace=TRUE)) test.names <- randomNames(gender=test.df$GENDER, ethnicity=test.df$ETHNICITY) head(test.names)
#> [1] "Teutonico, Alex" "Raje, Siran" "Serrano, Avishek" "Thompson, Selam" #> [5] "Hale, Lauren" "Lugo III, Cade"