R语言 分类变量和有序变量


R的因子是什么?

因子(factor)是R中的变量,其取值有限;这些变量通常被称为分类变量。

在数据集中,我们可以区分两种类型的变量:分类变量和连续变量:

  • 在分类变量中,值是有限的,通常基于一个特定的有限组。例如,分类变量可以是国家、年份、性别、职业。
  • 然而,连续变量可以取从整数到小数的任何值。例如,我们可以有收入,股票价格,等等。

分类变量

R将分类变量存储为一个因子。让我们检查下面将字符变量转换为因子变量的代码。机器学习算法不支持字符,唯一的方法是将字符串转换为整数。


factor(x = character(), levels, labels = levels, ordered = is.ordered(x))
参数 描述
x 数据向量。需要是字符串或整数,而不是小数。
Levels x取的可能值的向量。这个参数是可选的。默认值是向量x的唯一项列表。
Labels 向x数据添加一个标签。例如,1可以取标签“male”,而0可以取标签“female”。
ordered 确定是否应该对级别进行排序。

例1: 让我们创建一个因子数据框架:


gender_vector <- c("Male", "Female", "Female", "Male", "Male")
class(gender_vector) # 类型判断

factor_gender_vector <-factor(gender_vector)  # 转化为因子
class(factor_gender_vector)

结果:


[1] "character"
[1] "factor"

在执行机器学习任务时,将字符串转换为因子是很重要的。

分类变量可进一步分为名义分类变量有序分类变量


名义分类变量

这种情况下,分类变量有几个值,但顺序无关紧要。例如,男性或女性分类变量没有排序。


color_vector <- c('blue', 'red', 'green', 'white', 'black', 'yellow')
factor_color <- factor(color_vector)
factor_color

[1] blue   red    green  white  black  yellow
Levels: black blue green red white yellow

从factor_color中,我们无法判断任何顺序。


有序分类变量

有序分类变量有一个自然的顺序。我们可以指定顺序,用order = TRUE从最低到最高,用order = FALSE从最高到最低。

我们可以使用summary来计算每个因子的值:


day_vector <- c('evening', 'morning', 'afternoon', 'midday', 'midnight', 'evening')

factor_day <- factor(day_vector, order = TRUE, levels =c('morning', 'midday', 'afternoon', 'evening', 'midnight')) # 转化为因子,并指定级别/顺序

factor_day
[1] evening   morning   afternoon midday    
midnight  evening  

# 将该行附加到上面的代码
# 统计每个级别的出现次数
summary(factor_day)

# 结果
 morning    midday afternoon   evening  midnight   # 顺序
        1         1         1         2         1  # 出现次数

R会记住从“morning”到“midnight”的顺序。


连续变量

连续类变量是r中的默认值,它们被存储为数值或整数。我们可以从下面的数据集中看到它。mtcars是内置数据集。它收集不同类型汽车的信息。我们可以使用mtcars导入它,并检查变量mpg(每加仑英里数)的类。它返回一个数值,表示连续变量。


dataset <- mtcars
class(dataset$mpg)

[1] "numeric"



公众号

关注公众号,获取一手资讯

“ R语言 分类变量和有序变量 ” comments 0

评论/回复

电子邮件地址不会被公开。 必填项已用*标注