跳至主要内容

R 中的因子水平

本教程选取自 DataCamp 免费课程 Intro to R 的课程材料,带您练习因子(Factors)。
· 6分钟 阅读

使用 AI 探索

如果您想参加我们的免费 Intro to R 课程,请访问此链接。

因子水平

当您第一次拿到一个数据集时,常会发现其中包含带有特定水平的因子。不过,有时为了更清晰或出于其他原因,您会想要更改这些水平的名称。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")。

操作说明

  • 查看使用 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
        

汇总因子

完成本课程后,R 中您最喜欢的函数之一会是 summary()。它可以快速概览变量的内容:

summary(my_var)

回到我们的调查,您可能想知道研究中有多少 "Male" 响应,以及多少 "Female" 响应。summary() 函数会为您提供答案。

操作说明

对 survey_vector 和 factor_survey_vector 分别调用 summary()。比较并解读这两个向量的结果。在这种情况下,它们是否同样有用?


        # Build factor_survey_vector with clean levels
        survey_vector <- c("M", "F", "F", "M", "M")
        factor_survey_vector <- factor(survey_vector)
        levels(factor_survey_vector) <- c("Female", "Male")
        factor_survey_vector

        # Generate summary for survey_vector


        # Generate summary for factor_survey_vector
        

有序因子

由于 "Male" 和 "Female" 是无序(或名义)因子水平,R 会返回一条警告,提示大于运算符没有意义。如前所述,对于此类因子,R 会为各水平赋予相同的权重。

但并非总是如此!有时您也会处理在类别之间具备自然顺序的因子。如果出现这种情况,我们必须确保将这一信息传递给 R……

假设您带领一个由五位数据分析师组成的研究团队,并希望评估他们的表现。为此,您跟踪他们的速度,将每位分析师评为 "slow"、"medium" 或 "fast",并将结果保存在 speed_vector 中。

操作说明

首先,为 speed_vector 赋值一个包含 5 个条目的向量,每位分析师一个条目。每个条目应为 "slow"、"medium" 或 "fast" 之一。请使用以下列表:

  • 分析师 1 为 medium,
  • 分析师 2 为 slow,
  • 分析师 3 为 slow,
  • 分析师 4 为 medium,
  • 分析师 5 为 fast。

此处无需将其指定为因子。


        # Create speed_vector
        speed_vector <-
        


如果您想从本课程学到更多内容,请访问此链接。

查看我们的 Factors in R 教程。

主题