# Weibull Distribution in R (4 Examples) | dweibull, pweibull, qweibull & rweibull Functions

In this tutorial you’ll learn how to **apply the weibull functions** in R.

Table of contents:

- Example 1: Weibull Density in R (dweibull Function)
- Example 2: Weibull Distribution Function (pweibull Function)
- Example 3: Weibull Quantile Function (qweibull Function)
- Example 4: Random Number Generation (rweibull Function)
- Video, Further Resources & Summary

Let’s get started:

## Example 1: Weibull Density in R (dweibull Function)

In Example 1, we will create a plot representing the weibull density.

First, we need to create some x-values, for which we want to return the corresponding values of the weibull density:

x_dweibull <- seq(- 5, 30, by = 1) # Specify x-values for dweibull function |

x_dweibull <- seq(- 5, 30, by = 1) # Specify x-values for dweibull function

Now, we can apply the dweibull function of the R programming language to return the corresponding value of the weibull density with a shape of 0.1 and a scale of 1 for each of our input values:

y_dweibull <- dweibull(x_dweibull, shape = 0.1) # Apply dweibull function |

y_dweibull <- dweibull(x_dweibull, shape = 0.1) # Apply dweibull function

We can create a graphic showing these values with the plot function:

plot(y_dweibull) # Plot dweibull values |

plot(y_dweibull) # Plot dweibull values

**Figure 1: Weibull Density in R Plot.**

Figure 1 illustrates the weibull density for a range of input values between -5 and 30 for a shape of 0.1 and a scale of 1.

## Example 2: Weibull Distribution Function (pweibull Function)

In the second example, we’ll create the cumulative distribution function (CDF) of the weibull distribution.

Again, we need to specify a vector of input values:

x_pweibull <- seq(- 5, 30, by = 1) # Specify x-values for pweibull function |

x_pweibull <- seq(- 5, 30, by = 1) # Specify x-values for pweibull function

Now, we can apply the pweibull R command in order to return the corresponding CDF value for each input value…

y_pweibull <- pweibull(x_pweibull, shape = 0.1) # Apply pweibull function |

y_pweibull <- pweibull(x_pweibull, shape = 0.1) # Apply pweibull function

…and then we can draw a plot containing these values in R:

plot(y_pweibull) # Plot pweibull values |

plot(y_pweibull) # Plot pweibull values

**Figure 2: Cumulative Distribution Function According to Weibull Distribution.**

## Example 3: Weibull Quantile Function (qweibull Function)

Next, we will create a plot representing the weibull quantile function.

Let’s create a sequence of values between 0 and 1, for which we want to return the corresponding value of the quantile function:

x_qweibull <- seq(0, 1, by = 0.02) # Specify x-values for qweibull function |

x_qweibull <- seq(0, 1, by = 0.02) # Specify x-values for qweibull function

Now, we can use the qweibull R function to return the values of the quantile function:

y_qweibull <- qweibull(x_qweibull, shape = 0.1) # Apply qweibull function |

y_qweibull <- qweibull(x_qweibull, shape = 0.1) # Apply qweibull function

The following R code produces the corresponding scatterplot:

plot(y_qweibull) # Plot qweibull values |

plot(y_qweibull) # Plot qweibull values

**Figure 3: Weibull Quantile Function.**

## Example 4: Random Number Generation (rweibull Function)

We can also draw random values according to the weibull density.

First, we need to specify a seed and a sample size of random numbers:

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

set.seed(13579) # Set seed for reproducibility N <- 100 # Specify sample size

Now, we can use the rweibull command to draw a set of random numbers:

y_rweibull <- rweibull(N, shape = 0.1) # Draw N weibull distributed values y_rweibull # Print values to RStudio console # 2.924615e+03 1.248956e-09 3.362811e+03 1.392134e-10 4.235278e-01 3.332413e+00 2.545625e+04 |

y_rweibull <- rweibull(N, shape = 0.1) # Draw N weibull distributed values y_rweibull # Print values to RStudio console # 2.924615e+03 1.248956e-09 3.362811e+03 1.392134e-10 4.235278e-01 3.332413e+00 2.545625e+04

The RStudio console output is showing the result of the previous R syntax.

We can also produce a density plot of these numbers:

plot(density(y_rweibull), # Plot of randomly drawn weibull density main = "Weibull Distribution in R") |

plot(density(y_rweibull), # Plot of randomly drawn weibull density main = "Weibull Distribution in R")

**Figure 4: Random Weibull Numbers.**

## Video, Further Resources & Summary

Do you need more information on the R code of this tutorial? Then you may want to have a look at the following video of my YouTube channel. I’m explaining the R programming codes of this tutorial in the video:

*The YouTube video will be added soon.*

You could also read the other pages on distributions and the generation 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

Additionally, you may have a look at some of the related articles of this homepage.

In this post you learned some **basics of the weibull distribution** in R. Don’t hesitate to let me know in the comments section, in case you have additional questions.

### Subscribe to my free statistics newsletter: