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. 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. 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: 1American Indian or Native Alaskan 2Asian or Pacific Islander 3Black (not Hispanic) 4Hispanic 5White (not Hispanic) 6Middle-Eastern, Arabic 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. OPTIONAL. If which.names is "both", then names can be returned as either "last.first" (the default) or "first.last". OPTIONAL. If which.names is "both", then names are separated by the name.sep string provided. Defaults to comma-space separated. Boolean argument (defaults to TRUE) indicating whether sampling is done with replacement. 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.

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)

test.names <- randomNames(gender=test.df$GENDER, ethnicity=test.df$ETHNICITY)
#> [5] "Hale, Lauren"     "Lugo III, Cade"