📅  最后修改于: 2023-12-03 15:08:46.372000             🧑  作者: Mango
在数据分析中,分类变量(也称离散变量)是指不连续的变量,如性别、学历、职业等。在 R 中,需要将这些分类变量处理为因子(factor)类型的数据,以便进行统计描述分析。本文将介绍如何在 R 中创建分类变量。
如果你已经有了一个分类变量的列表,可以通过 factor()
函数将其转换成因子类型的向量。示例如下:
# 创建分类变量列表
my_list <- c("dog", "cat", "dog", "bird", "cat", "bird")
# 将分类变量转换为因子类型
my_factor <- factor(my_list)
# 查看因子类型
class(my_factor)
head(my_factor)
输出结果为:
[1] "factor"
[1] dog cat dog bird cat bird
Levels: bird cat dog
其中 Levels
表示不同的类别,并按照字母顺序排列。
如果你需要从数据框中创建分类变量,可以使用 mutate()
函数和 factor()
函数。示例如下:
# 创建数据框
my_df <- data.frame(name = c("Tom", "Bob", "Mary", "Sue", "Joe"),
gender = c("M", "M", "F", "F", "M"),
education = c("Bachelor", "Master", "PhD", "Bachelor", "PhD"))
# 将 gender 和 education 转换为因子类型
library(dplyr)
my_df <- my_df %>%
mutate(gender = factor(gender),
education = factor(education))
# 查看结果
str(my_df)
输出结果为:
'data.frame': 5 obs. of 3 variables:
$ name : Factor w/ 5 levels "Bob","Joe","Mary",..: 5 1 3 4 2
$ gender : Factor w/ 2 levels "F","M": 2 2 1 1 2
$ education: Factor w/ 3 levels "Bachelor","Master",..: 1 2 3 1 3
其中 str()
函数可以查看每个变量的数据类型,可以看到 gender
和 education
已经成功转换为因子类型。
对于存在空值的分类变量,我们需要对其进行处理。默认情况下,factor()
函数会将空值也识别为一个类别,并添加到 Levels
中。我们需要将空值与其他类别分开处理。示例如下:
# 创建分类变量列表,包括空值
my_list <- c("dog", "cat", NA, "bird", "cat", "bird")
# 将分类变量转换为因子类型,空值单独处理
my_factor <- factor(my_list, exclude = NULL)
# 查看结果
levels(my_factor)
输出结果为:
[1] "bird" "cat" "dog" NA
其中,exclude = NULL
表示将空值纳入考虑,并单独处理。
至此,通过以上三种方式,你已经掌握了在 R 中创建分类变量的方法。