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