# How to Use the gl() Function in R

The gl() function in R is “used to generate factors by specifying the pattern of their levels”.

### Syntax

``gl(n, k, length = n*k, labels = seq_len(n), ordered = FALSE)``

### Parameters

1. n: It is an integer giving the number of levels.
2. k: It is an integer giving the number of replications.
3. length: It is an integer giving the length of the result.
4. labels: It is an optional vector of labels for the resulting factor levels.
5. ordered: It is a logical argument indicating whether the result should be ordered.

## Example 1: How to use the gl() function

``````sv <- gl(3, 2, labels = c("Erlich", "Richard", "Gilfoyle"))
sv``````

Output

`````` Erlich Erlich Richard Richard Gilfoyle Gilfoyle
Levels: Erlich Richard Gilfoyle
``````

In this example, we have defined 2 replications, which means it will repeat every element two times, and our levels are three: Erlich, Richard, and Gilfoyle.

## Example 2: Specify Labels within gl() Function

``````data <- gl(3, 4, 10, label = letters[1:12])
data

app <- gl(3, 4, 10, label = letters[1:12], ordered = T)
app``````

Output

`````` a a a a b b b b c c
Levels: a b c d e f g h i j k l
 a a a a b b b b c c
Levels: a < b < c < d < e < f < g < h < i < j < k < l``````

## Example 3: Change the order of levels in R

To change the order of levels in R, apply the “factor()” function again with the order of the new levels.

``````data <- c("Erlich", "Richard", "Gilfoyle", "Gilfoyle", "Erlich", "Richard")

factor_data <- factor(data)
factor_data

ordered_data <- factor(factor_data, levels = c("Richard", "Erlich", "Gilfoyle"))
ordered_data``````

Output

`````` Erlich Richard Gilfoyle Gilfoyle Erlich Richard
Levels: Erlich Gilfoyle Richard
 Erlich Richard Gilfoyle Gilfoyle Erlich Richard
Levels: Richard Erlich Gilfoyle``````

That’s it.