📜  如何在 R 中创建分类变量?(1)

📅  最后修改于: 2023-12-03 15:08:46.372000             🧑  作者: Mango

如何在 R 中创建分类变量?

在数据分析中,分类变量(也称离散变量)是指不连续的变量,如性别、学历、职业等。在 R 中,需要将这些分类变量处理为因子(factor)类型的数据,以便进行统计描述分析。本文将介绍如何在 R 中创建分类变量。

1. 列表创建

如果你已经有了一个分类变量的列表,可以通过 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 表示不同的类别,并按照字母顺序排列。

2. 数据框创建

如果你需要从数据框中创建分类变量,可以使用 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() 函数可以查看每个变量的数据类型,可以看到 gendereducation 已经成功转换为因子类型。

3. 空值处理

对于存在空值的分类变量,我们需要对其进行处理。默认情况下,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 中创建分类变量的方法。