# Log Normal Distribution in R (4 Examples) | dlnorm, plnorm, qlnorm & rlnorm Functions

This tutorial shows how to **apply the log normal functions** in R.

The page consists of this content:

- Example 1: Log Normal Probability Density Function (dlnorm Function)
- Example 2: Log Normal Cumulative Distribution Function (plnorm Function)
- Example 3: Log Normal Quantile Function (qlnorm Function)
- Example 4: Generating Random Numbers (rlnorm Function)
- Video & Further Resources

Let’s dig in!

## Example 1: Log Normal Probability Density Function (dlnorm Function)

In the first example, I’ll show you how the log normal density looks like. First, we need to create a sequence of quantile values that we can use as input for the dlnorm R function.

x_dlnorm <- seq(0, 10, by = 0.01) # Specify x-values for dlnorm function |

x_dlnorm <- seq(0, 10, by = 0.01) # Specify x-values for dlnorm function

Now, we can apply the dlnorm function as follows:

y_dlnorm <- dlnorm(x_dlnorm) # Apply dlnorm function |

y_dlnorm <- dlnorm(x_dlnorm) # Apply dlnorm function

The previous R code stored the output of the dlnorm function in the data object y_dlnorm. We can now use the plot function to draw a graphic, representing the probability density function (PDF) of the log normal distribution:

plot(y_dlnorm) # Plot dlnorm values |

plot(y_dlnorm) # Plot dlnorm values

**Figure 1: PDF of Log Normal Distribution.**

## Example 2: Log Normal Cumulative Distribution Function (plnorm Function)

Example 2 shows how to draw the cumulative distribution function (CDF) of the log normal distribution. Again, we need to create a vector of quantiles:

x_plnorm <- seq(0, 10, by = 0.01) # Specify x-values for plnorm function |

x_plnorm <- seq(0, 10, by = 0.01) # Specify x-values for plnorm function

And then, we need to insert this vector into the plnorm command:

y_plnorm <- plnorm(x_plnorm) # Apply plnorm function |

y_plnorm <- plnorm(x_plnorm) # Apply plnorm function

We can draw the cumulative distribution function as follows:

plot(y_plnorm) # Plot plnorm values |

plot(y_plnorm) # Plot plnorm values

**Figure 2: CDF of Log Normal Distribution.**

## Example 3: Log Normal Quantile Function (qlnorm Function)

In Example 3, we’ll create the quantile function of the log normal distribution. As first step, we have to create a sequence of probabilities (i.e. values between 0 and 1):

x_qlnorm <- seq(0, 1, by = 0.01) # Specify x-values for qlnorm function |

x_qlnorm <- seq(0, 1, by = 0.01) # Specify x-values for qlnorm function

Then, we can apply the qlnorm function to this sequence:

y_qlnorm <- qlnorm(x_qlnorm) # Apply qlnorm function |

y_qlnorm <- qlnorm(x_qlnorm) # Apply qlnorm function

Finally, we can draw our quantile function plot of the log normal distribution:

plot(y_qlnorm) # Plot qlnorm values |

plot(y_qlnorm) # Plot qlnorm values

**Figure 3: Quantile Function of Log Normal Distribution.**

## Example 4: Generating Random Numbers (rlnorm Function)

In the last example of this R tutorial, I’ll explain how to draw random numbers according to the distribution of the log normal density. First, we need to set a seed and specify the amount of random numbers that we want to simulate:

set.seed(91929) # Set seed for reproducibility N <- 10000 # Specify sample size |

set.seed(91929) # Set seed for reproducibility N <- 10000 # Specify sample size

Then, we can apply the rlnorm function in order to generate N random numbers:

y_rlnorm <- rlnorm(N) # Draw N log normally distributed values y_rlnorm # Print values to RStudio console # 0.88082919 0.71130233 1.55750385 0.74597213 1.12296291 1.73100566 0.72801951 1.25833372 2.09056650... |

y_rlnorm <- rlnorm(N) # Draw N log normally distributed values y_rlnorm # Print values to RStudio console # 0.88082919 0.71130233 1.55750385 0.74597213 1.12296291 1.73100566 0.72801951 1.25833372 2.09056650...

As you can see based on the previous RStudio console output, our random numbers are stored in the data object y_rlnorm. We can draw a histogram showing the distribution of these random numbers as shown below:

hist(y_rlnorm, # Plot of randomly drawn log normal density breaks = 100, main = "") |

hist(y_rlnorm, # Plot of randomly drawn log normal density breaks = 100, main = "")

**Figure 4: Random Numbers Distributed as Log Normal Distribution.**

As you can see: The random numbers are distributed as the log normal distribution. Looks fine!

## Video & Further Resources

In case you need more info on the R programming syntax of this page, I can recommend to watch the following video of my YouTube channel. I show the examples of this tutorial in the video:

*The YouTube video will be added soon.*

You might also read the other articles on probability distributions and the simulation of random numbers in R:

- Bernoulli Distribution in R
- Beta Distribution in R
- Binomial Distribution in R
- Bivariate & Multivariate Distributions in R
- Cauchy Distribution in R
- Chi-Squred Distribution in R
- Exponential Distribution in R
- F Distribution in R
- Gamma Distribution in R
- Geometric Distribution in R
- Hypergeometric Distribution in R
- Log Normal Distribution in R
- Logistic Distribution in R
- Negative Binomial Distribution in R
- Normal Distribution in R
- Poisson Distribution in R
- Student t Distribution in R
- Studentized Range Distribution in R
- Uniform Distribution in R
- Weibull Distribution in R
- Wilcoxon Signedank Statistic Distribution in R
- Wilcoxonank Sum Statistic Distribution in R

In addition to the video, I can recommend to read the other articles on my website:

This tutorial illustrated how to **use the log normal functions** in R programming. Please tell me about it in the comments section, if you have further questions.

### Subscribe to my free statistics newsletter: