R 对于分类(名义)变量和有序变量的数据类型略有不同。
具体来说,分类数据通常编码为factors。序数变量是分类变量的一种特殊情况,因此是也是因子——但有序因子。
就 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