# gl

##### Generate Factor Levels

Generate factors by specifying the pattern of their levels.

##### Usage

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

##### Arguments

- n
an integer giving the number of levels.

- k
an integer giving the number of replications.

- length
an integer giving the length of the result.

- labels
an optional vector of labels for the resulting factor levels.

- ordered
a logical indicating whether the result should be ordered or not.

##### Value

The result has levels from `1`

to `n`

with each value
replicated in groups of length `k`

out to a total length of
`length`

.

`gl`

is modelled on the *GLIM* function of the same name.

##### See Also

The underlying `factor()`

.

##### Examples

`library(base)`

```
# NOT RUN {
## First control, then treatment:
gl(2, 8, labels = c("Control", "Treat"))
## 20 alternating 1s and 2s
gl(2, 1, 20)
## alternating pairs of 1s and 2s
gl(2, 2, 20)
# }
```

*Documentation reproduced from package base, version 3.6.1, License: Part of R 3.6.1*

### Community examples

**twzop**at Jan 12, 2018 base v3.4.3

## Generate a vector of (10) normal random variables with a mean of 0, (10) uniformed variables with mean of 0 and (10) normal ranfom variables with a mean of 1 x <- c(rnorm(10), runif(10), rnorm(10, 1)) ## Generate a factor of (3) levels that repeat (10) times using gl() ## We select (3) for factor levels because x defined (3) different sets (that will be represented as the levels) of random variables in its definition g <- gl(3, 10) ## Use split() to output the values of the three sections (levels) of x as a list using gl()'s factor split(x, g)