R语言教程:因子

2022-08-0218:54:43编程语言入门到精通Comments1,309 views字数 1179阅读模式

因子用于存储不同类别的数据类型,例如人的性别有男和女两个类别,年龄来分可以有未成年人和成年人。文章源自菜鸟学院-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

实例

x <- c("男", "女", "男", "男",  "女")
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

实例

x <- c("男", "女", "男", "男",  "女",levels=c('男','女'))
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

实例

sex=factor(c('f','m','f','f','m'),levels=c('f','m'),labels=c('female','male'),ordered=TRUE)
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 是排列好顺序的,布尔值。

实例

v <- gl(3, 4, labels = c("Google", "Runoob","Taobao"))
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
  • 本站内容整理自互联网,仅提供信息存储空间服务,以方便学习之用。如对文章、图片、字体等版权有疑问,请在下方留言,管理员看到后,将第一时间进行处理。
  • 转载请务必保留本文链接:https://www.cainiaoxueyuan.com/ymba/26434.html

Comment

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定