因子水平
当您拿到一个数据集时,常会发现其中包含带有特定水平的因子。不过,出于清晰或其他原因,您有时需要修改这些水平的名称。R 提供了 levels() 函数来完成这一点:
levels(factor_vector) <- c("name1", "name2",...)
一个常见示例是问卷原始数据。几乎每份问卷都会询问受访者的性别。这里为简化起见,只记录了两个类别,"M" 和 "F"。(实际做调查通常需要更多类别;无论如何,您都会用因子来存储这类分类数据。)
survey_vector <- c("M", "F", "F", "M", "M")
在纸笔收集数据时,用 "M" 和 "F" 作缩写很方便,但在分析阶段可能会引起歧义。这时,您通常希望将因子水平从 "M"、"F" 改为更清楚的 "Male" 和 "Female"。
注意:指定水平的顺序很重要。如果您输入 levels(factor_survey_vector),会看到输出为 [1] "F" "M"。如果创建向量时未显式指定因子水平,R 会按字母顺序自动分配。为了将 "F" 正确映射到 "Female"、"M" 映射到 "Male",应按此顺序将水平设置为 c("Female", "Male")。
本练习是课程的一部分
R 入门
练习说明
- 查看从
survey_vector构建因子向量的代码。下一步请使用factor_survey_vector。 - 将
factor_survey_vector的因子水平改为c("Female", "Male")。注意向量元素的顺序。
交互式实操练习
通过完成这段示例代码来试试这个练习。
# Code to build factor_survey_vector
survey_vector <- c("M", "F", "F", "M", "M")
factor_survey_vector <- factor(survey_vector)
# Specify the levels of factor_survey_vector
levels(factor_survey_vector) <-
factor_survey_vector