# Change labels of factors or labelled objects¶

## Description¶

Function `relabel`

changes the labels of a factor or any object that has a `names`

,
`labels`

, `value.labels`

, or `variable.labels`

attribute. Function `relabel4`

is
an (internal) generic which is called by `relabel`

to handle S4 objects.

## Usage¶

```
## S4 method for signature 'default'
relabel(x, ..., gsub = FALSE, fixed = TRUE, warn = TRUE)
## S4 method for signature 'factor'
relabel(x, ..., gsub = FALSE, fixed = TRUE, warn = TRUE)
## S4 method for signature 'item'
relabel4(x, ...)
# This is an internal method, see details.
# Use relabel(x, \dots) for 'item' objects
```

## Arguments¶

`x`

An object with a

`names`

,`labels`

,`value.labels`

, or`variable.labels`

attribute`...`

A sequence of named arguments, all of type character

`gsub`

a logical value; if TRUE,

`gsub`

is used to change the labels of the object. That is, instead of substituting whole labels, substrings of the labels of the object can changed.`fixed`

a logical value, passed to

`gsub`

. If TRUE, substitutions are by fixed strings and not by regular expressions.`warn`

a logical value; if TRUE, a warning is issues if a a change of labels was unsuccessful.

## Value¶

The object `x`

with new labels defined by the … arguments.

## Details¶

This function changes the names or labels of `x`

according to the remaining arguments.
If `gsub`

is FALSE, argument tags are the *old* labels, the values are the new labels.
If `gsub`

is TRUE, arguments are substrings of the labels that are substituted by the
argument values.

Function `relabel`

is S3 generic. If its first argument is an S4 object, it calls the
(internal) `relabel4`

generic function.

## Examples¶

```
f <- as.factor(rep(letters[1:4],5))
levels(f)
```

```
[1] "a" "b" "c" "d"
```

```
F <- relabel(f,
a="A",
b="B",
c="C",
d="D"
)
levels(F)
```

```
[1] "A" "B" "C" "D"
```

```
f <- as.item(f)
labels(f)
```

```
Values and labels:
1 'a'
2 'b'
3 'c'
4 'd'
```

```
F <- relabel(f,
a="A",
b="B",
c="C",
d="D"
)
labels(F)
```

```
Values and labels:
1 'A'
2 'B'
3 'C'
4 'D'
```

```
# Since version 0.99.22 - the following also works:
f <- as.factor(rep(letters[1:4],5))
levels(f)
```

```
[1] "a" "b" "c" "d"
```

```
F <- relabel(f,
a=A,
b=B,
c=C,
d=D
)
levels(F)
```

```
[1] "A" "B" "C" "D"
```

```
f <- as.item(f)
labels(f)
```

```
Values and labels:
1 'a'
2 'b'
3 'c'
4 'd'
```

```
F <- relabel(f,
a=A,
b=B,
c=C,
d=D
)
labels(F)
```

```
Values and labels:
1 'A'
2 'B'
3 'C'
4 'D'
```