如果您想参加我们的免费 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 教程。
如果您想参加我们的免费 Intro to R 课程,请访问此链接。
因子水平
当您第一次拿到一个数据集时,常会发现其中包含带有特定水平的因子。不过,有时为了更清晰或出于其他原因,您会想要更改这些水平的名称。R 允许您使用函数
levels()来完成:一个很好的例子是问卷调查提供的原始数据。每份问卷中一个常见的问题是受访者的性别。这里为简化,只记录了两个类别,
"M"和"F"。(对于调查数据,通常需要更多类别;无论如何,您都会用因子来存储这类分类数据。)在用纸笔收集数据时,使用
"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")。请注意向量元素的顺序。汇总因子
完成本课程后,R 中您最喜欢的函数之一会是 summary()。它可以快速概览变量的内容:
回到我们的调查,您可能想知道研究中有多少
"Male"响应,以及多少"Female"响应。summary()函数会为您提供答案。操作说明
对
survey_vector和factor_survey_vector分别调用summary()。比较并解读这两个向量的结果。在这种情况下,它们是否同样有用?有序因子
由于
"Male"和"Female"是无序(或名义)因子水平,R 会返回一条警告,提示大于运算符没有意义。如前所述,对于此类因子,R 会为各水平赋予相同的权重。但并非总是如此!有时您也会处理在类别之间具备自然顺序的因子。如果出现这种情况,我们必须确保将这一信息传递给 R……
假设您带领一个由五位数据分析师组成的研究团队,并希望评估他们的表现。为此,您跟踪他们的速度,将每位分析师评为
"slow"、"medium"或"fast",并将结果保存在speed_vector中。操作说明
首先,为
speed_vector赋值一个包含 5 个条目的向量,每位分析师一个条目。每个条目应为"slow"、"medium"或"fast"之一。请使用以下列表:此处无需将其指定为因子。
如果您想从本课程学到更多内容,请访问此链接。
查看我们的 Factors in R 教程。