因子用于存储不同类别的数据类型,例如人的性别有男和女两个类别,年龄来分可以有未成年人和成年人。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26434.html
R 语言创建因子使用 factor() 函数,向量作为输入参数。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26434.html
factor() 函数语法格式:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26434.html
factor(x = character(), levels, labels = levels, exclude = NA, ordered = is.ordered(x), nmax = NA)
参数说明:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26434.html
- x:向量。
- levels:指定各水平值, 不指定时由x的不同值来求得。
- labels:水平的标签, 不指定时用各水平值的对应字符串。
- exclude:排除的字符。
- ordered:逻辑值,用于指定水平是否有序。
- nmax:水平的上限数量。
以下实例把字符型向量转换成因子:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26434.html
实例
sex <- factor(x)
print(sex)
print(is.factor(sex))
执行以上代码输出结果为:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26434.html
[1] 男 女 男 男 女 Levels: 男 女 [1] TRUE
以下实例设置因子水平为 c('男','女'):文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26434.html
实例
sex <- factor(x)
print(sex)
print(is.factor(sex))
执行以上代码输出结果为:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26434.html
levels1 levels2 男 女 男 男 女 男 女 Levels: 男 女 [1] TRUE
因子水平标签
接下来我们使用 labels 参数为每个因子水平添加标签,labels 参数的字符顺序,要和 levels 参数的字符顺序保持一致,例如:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26434.html
实例
print(sex)
执行以上代码输出结果为:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26434.html
[1] female male female female male Levels: female < male
生成因子水平
我们可以使用 gl() 函数来生成因子水平,语法格式如下:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26434.html
gl(n, k, length = n*k, labels = seq_len(n), ordered = FALSE)
参数说明:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26434.html
- n: 设置 level 的个数
- k: 设置每个 level 重复的次数
- length: 设置长度
- labels: 设置 level 的值
- ordered: 设置是否 level 是排列好顺序的,布尔值。
实例
print(v)
执行以上代码输出结果为:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26434.html
[1] Google Google Google Google Runoob Runoob Runoob Runoob Taobao Taobao [11] Taobao Taobao Levels: Google Runoob Taobao文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26434.html