factor(x1) #> [1] Dec Apr Jan Mar #> Levels: Apr Dec Jan Mar
有时你更希望水平的顺序与数据中首次出现的顺序一致。你可以在创建因子时将 levels 设置为 unique(x) 来实现,或者事后使用 fct_inorder():
f1 <- factor(x1, levels = unique(x1)) f1 #> [1] Dec Apr Jan Mar #> Levels: Dec Apr Jan Mar f2 <- x1 %>% factor() %>% fct_inorder() f2 #> [1] Dec Apr Jan Mar #> Levels: Dec Apr Jan Mar
如果你需要直接访问有效水平的集合,可以使用 levels():
levels(f2) #> [1] "Dec" "Apr" "Jan" "Mar"
综合社会调查(General Social Survey)
在本章的剩余部分,我们将重点关注 forcats::gss_cat。它来自 综合社会调查 (General Social Survey) 的数据样本,这是由芝加哥大学的独立研究机构 NORC 开展的一项长期运行的美国调查。该调查包含数千个问题,因此在 gss_cat 中我挑选了几个问题,用以说明你在处理因子时会遇到的一些常见挑战:
gss_cat #> # A tibble: 21,483 × 9 #> year marital age race rincome #>