我不应该以不同的方式处理名义分类变量和序数变量吗?在我看来,从文本值到数字的简单更改可能表明名义变量之间存在某种关系。
在 R 中进行数据预处理时如何做到这一点?
最佳答案
R 的分类(名义)变量和序数变量的数据类型略有不同。
具体来说,分类数据通常编码为 factor
s 。序数变量是分类变量的特例,因此也是因子,但是有序因子。
就 R 代码而言,区别只是在 factor
函数调用中设置一个参数:
paygrades = c('intern', 'junior', 'senior', 'manager')
employees = data.frame(
Name = c('Alice', 'Bob', 'Cecil', 'Dan', 'Emily', 'Felix'),
Role = factor(c('engineer', 'accounting', 'marketing', 'CEO', 'testing', 'engineer')),
Paygrade = factor(c('senior', 'junior', 'intern', 'manager', 'senior', 'junior'), levels = paygrades, ordered = TRUE),
stringsAsFactors = FALSE
)
如果我们现在检查数据,我们会发现:
employees$Role
# [1] engineer accounting marketing CEO testing engineer
# Levels: accounting CEO engineer marketing testing
employees$Paygrade
# [1] senior junior intern manager senior junior
# Levels: intern < junior < senior < manager
关于r - 编码标称变量和排序变量有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59407209/