# Generate names using posterior probabilities

**R-posts.com**, and kindly contributed to R-bloggers]. (You can report issue about the content on this page here)

Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.

If you are building synthetic data and need to generate people names, this article will be a helpful guide. This article is part of a series of articles regarding the R package **conjurer**. You can find the first part of this series here.

## Steps to generate people names

### 1. Installation

Install **conjurer** package by using the following code.

install.packages("conjurer")

### 2. Training data Vs default data

The package **conjurer** provides 2 two options to generate names.

- The first option is to provide a custom training data.
- The second option is to use the default training data provided by the package.

If it is people names that you are interested in generating, you are better off using the default training data. However, if you would like to generate names of items or products (example: pharmaceutical drug names), it is recommended that you build your own training data.

The function that helps in generating names is **buildNames**. Let us understand the inputs of the function. This function takes the form as given below.

buildNames(dframe, numOfNames, minLength, maxLength)

In this function,

*dframe* is a dataframe. This dataframe must be a single column dataframe where each row contains a name. These names must only contain english alphabets(upper or lower case) from A to Z but no special characters such as “;” or non ASCII characters. If you do not pass this argument to the function, the function uses the default prior probabilities to generate the names.

*numOfNames* is a numeric. This specifies the number of names to be generated. It should be a non-zero natural number.

*minLength* is a numeric. This specifies the minimum number of alphabets in the name. It must be a non-zero natural number*.*

*maxLength *is a numeric. This specifies the maximum number of alphabets in the name. It must be a non-zero natural number*. *

### 3. Example

Let us run this function with an example to see how it works. Let us use the default matrix of prior probabilities for this example. The output would be a list of names as given below.

library(conjurer) peopleNames <- buildNames(numOfNames = 3, minLength = 5, maxLength = 7) print(peopleNames) [1] "ellie" "bellann" "netar"

Please note that since this is a random generator, you may get other names than displayed in the above example.

### 4. Consolidated code

Following is the consolidated code for your convenience.

#install latest version install.packages("conjurer") #invoke library library(conjurer) #generate names peopleNames <- buildNames(numOfNames = 3, minLength = 5, maxLength = 7) #inspect the names generated print(peopleNames)

### 5. Concluding remarks

In this article, we have learnt how to use the R package conjurer and generate names. Since the algorithm relies on prior probabilities, the names that are output may not look exactly like real human names but will phonetically sound like human names. So, go ahead and give it a try. If you like to understand the underlying code that generates these names, you can explore the GitHub repository here. If you are interested in what’s coming next in this package, you can find it in the issues section here

**leave a comment**for the author, please follow the link and comment on their blog:

**R-posts.com**.

R-bloggers.com offers

**daily e-mail updates**about R news and tutorials about learning R and many other topics. Click here if you're looking to post or find an R/data-science job.

Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.