ref_lvl: Change reference level of (numeric) factors

Description Usage Arguments Details Value See Also Examples

View source: R/ref_lvl.R

Description

Changes the reference level of (numeric) factor.

Usage

1
ref_lvl(x, ..., lvl = NULL)

Arguments

x

A vector or data frame.

...

Optional, unquoted names of variables that should be selected for further processing. Required, if x is a data frame (and no vector) and only selected variables from x should be processed. You may also use functions like : or tidyselect's select-helpers. See 'Examples' or package-vignette.

lvl

Either numeric, indicating the new reference level, or a string, indicating the value label from the new reference level. If x is a factor with non-numeric factor levels, relevel(x, ref = lvl) is returned. See 'Examples'.

Details

Unlike relevel, this function behaves differently for factor with numeric factor levels or for labelled data, i.e. factors with value labels for the values. ref_lvl() changes the reference level by recoding the factor's values using the rec function. Hence, all values from lowest up to the reference level indicated by lvl are recoded, with lvl starting as lowest factor value. For factors with non-numeric factor levels, the function simply returns relevel(x, ref = lvl). See 'Examples'.

Value

x with new reference level. If x is a data frame, the complete data frame x will be returned, where variables specified in ... will be re-leveled; if ... is not specified, applies to all variables in the data frame.

See Also

to_factor to convert numeric vectors into factors; rec to recode variables.

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
data(efc)
x <- to_factor(efc$e42dep)
str(x)
frq(x)

# see column "val" in frq()-output, which indicates
# how values/labels were recoded after using ref_lvl()
x <- ref_lvl(x, lvl = 3)
str(x)
frq(x)

library(dplyr)
dat <- efc %>%
  select(c82cop1, c83cop2, c84cop3) %>%
  to_factor()

frq(dat)
ref_lvl(dat, c82cop1, c83cop2, lvl = 2) %>% frq()

# compare numeric and string value for "lvl"-argument
x <- to_factor(efc$e42dep)
frq(x)
ref_lvl(x, lvl = 2) %>% frq()
ref_lvl(x, lvl = "slightly dependent") %>% frq()

# factors with non-numeric factor levels
data(iris)
levels(iris$Species)
levels(ref_lvl(iris$Species, lvl = 3))
levels(ref_lvl(iris$Species, lvl = "versicolor"))

Example output

sh: 1: cannot create /dev/null: Permission denied
sh: 1: wc: Permission denied
Could not detect number of cores, defaulting to 1.
 Factor w/ 4 levels "1","2","3","4": 3 3 3 4 4 4 4 4 4 4 ...
 - attr(*, "labels")= Named num [1:4] 1 2 3 4
  ..- attr(*, "names")= chr [1:4] "independent" "slightly dependent" "moderately dependent" "severely dependent"
 - attr(*, "label")= chr "elder's dependency"
# elder's dependency <categorical>

 val                label frq raw.prc valid.prc cum.prc
   1          independent  66    7.27      7.33    7.33
   2   slightly dependent 225   24.78     24.97   32.30
   3 moderately dependent 306   33.70     33.96   66.26
   4   severely dependent 304   33.48     33.74  100.00
  NA                   NA   7    0.77        NA      NA


 Factor w/ 4 levels "1","2","3","4": 1 1 1 4 4 4 4 4 4 4 ...
 - attr(*, "label")= chr "elder's dependency"
 - attr(*, "labels")= Named num [1:4] 1 2 3 4
  ..- attr(*, "names")= chr [1:4] "moderately dependent" "independent" "slightly dependent" "severely dependent"
# elder's dependency <categorical>

 val                label frq raw.prc valid.prc cum.prc
   1 moderately dependent 306   33.70     33.96   33.96
   2          independent  66    7.27      7.33   41.29
   3   slightly dependent 225   24.78     24.97   66.26
   4   severely dependent 304   33.48     33.74  100.00
  NA                   NA   7    0.77        NA      NA



Attaching package: 'dplyr'

The following objects are masked from 'package:stats':

    filter, lag

The following objects are masked from 'package:base':

    intersect, setdiff, setequal, union

# do you feel you cope well as caregiver? <categorical>

 val     label frq raw.prc valid.prc cum.prc
   1     never   3    0.33      0.33    0.33
   2 sometimes  97   10.68     10.77   11.10
   3     often 591   65.09     65.59   76.69
   4    always 210   23.13     23.31  100.00
  NA        NA   7    0.77        NA      NA


# do you find caregiving too demanding? <categorical>

 val     label frq raw.prc valid.prc cum.prc
   1     Never 186   20.48     20.62   20.62
   2 Sometimes 547   60.24     60.64   81.26
   3     Often 130   14.32     14.41   95.68
   4    Always  39    4.30      4.32  100.00
  NA        NA   6    0.66        NA      NA


# does caregiving cause difficulties in your relationship with your friends? <categorical>

 val     label frq raw.prc valid.prc cum.prc
   1     Never 516   56.83     57.21   57.21
   2 Sometimes 252   27.75     27.94   85.14
   3     Often  82    9.03      9.09   94.24
   4    Always  52    5.73      5.76  100.00
  NA        NA   6    0.66        NA      NA


# do you feel you cope well as caregiver? <categorical>

 val     label frq raw.prc valid.prc cum.prc
   1 sometimes  97   10.68     10.77   10.77
   2     never   3    0.33      0.33   11.10
   3     often 591   65.09     65.59   76.69
   4    always 210   23.13     23.31  100.00
  NA        NA   7    0.77        NA      NA


# do you find caregiving too demanding? <categorical>

 val     label frq raw.prc valid.prc cum.prc
   1 Sometimes 547   60.24     60.64   60.64
   2     Never 186   20.48     20.62   81.26
   3     Often 130   14.32     14.41   95.68
   4    Always  39    4.30      4.32  100.00
  NA        NA   6    0.66        NA      NA


# does caregiving cause difficulties in your relationship with your friends? <categorical>

 val     label frq raw.prc valid.prc cum.prc
   1     Never 516   56.83     57.21   57.21
   2 Sometimes 252   27.75     27.94   85.14
   3     Often  82    9.03      9.09   94.24
   4    Always  52    5.73      5.76  100.00
  NA        NA   6    0.66        NA      NA


# elder's dependency <categorical>

 val                label frq raw.prc valid.prc cum.prc
   1          independent  66    7.27      7.33    7.33
   2   slightly dependent 225   24.78     24.97   32.30
   3 moderately dependent 306   33.70     33.96   66.26
   4   severely dependent 304   33.48     33.74  100.00
  NA                   NA   7    0.77        NA      NA


# elder's dependency <categorical>

 val                label frq raw.prc valid.prc cum.prc
   1   slightly dependent 225   24.78     24.97   24.97
   2          independent  66    7.27      7.33   32.30
   3 moderately dependent 306   33.70     33.96   66.26
   4   severely dependent 304   33.48     33.74  100.00
  NA                   NA   7    0.77        NA      NA


# elder's dependency <categorical>

 val                label frq raw.prc valid.prc cum.prc
   1          independent  66    7.27      7.33    7.33
   2   slightly dependent 225   24.78     24.97   32.30
   3 moderately dependent 306   33.70     33.96   66.26
   4   severely dependent 304   33.48     33.74  100.00
  NA                   NA   7    0.77        NA      NA


Warning message:
`x` has no factor level indicated by the reference level `value`. 
[1] "setosa"     "versicolor" "virginica" 
[1] "setosa"     "versicolor" "virginica" 
Warning message:
`x` needs to be a factor with numeric factor levels. 
[1] "setosa"     "versicolor" "virginica" 
Warning message:
`x` needs to be a factor with numeric factor levels. 

sjmisc documentation built on Dec. 11, 2021, 9:34 a.m.