位置:首页 > R > R因子是什么意思?R因子的定义与作用解析

R因子是什么意思?R因子的定义与作用解析

时间:2026-08-15  |  作者:半糖攻略君  |  阅读:0

因子主要用来保存分类型数据。 举个最常见的例子,性别通常可以分为男、女这类不同类别;如果按年龄来划分,也可以分成未成年人和成年人。

R 因子

R 语言中创建因子

R 语言创建因子使用 factor() 函数,向量作为输入参数。

factor() 函数语法格式:

factor(x = character(), levels, labels = levels,
       exclude = NA, ordered = is.ordered(x), nmax = NA)

参数说明

  • x:向量。
  • levels:指定各水平值, 不指定时由x的不同值来求得。
  • labels:水平的标签, 不指定时用各水平值的对应字符串。
  • exclude:排除的字符。
  • ordered:逻辑值,用于指定水平是否有序。
  • nmax:水平的上限数量。

实例

以下实例把字符型向量转换成因子:

x <- c("男", "女", "男", "男",  "女")
sex <- factor(x)
print(sex)
print(is.factor(sex))

执行以上代码输出结果为:

[1] 男 女 男 男 女
Levels: 男 女
[1] TRUE

设置因子水平

以下实例设置因子水平为 c('男','女')

实例

x <- c("男", "女", "男", "男",  "女",levels=c('男','女'))
sex <- factor(x)
print(sex)
print(is.factor(sex))

执行以上代码输出结果为:

levels1 levels2 
男      女      男      男      女      男      女 
Levels: 男 女
[1] TRUE

因子水平标签

给每个因子水平补上更直观的名称,可以用 labels 参数来完成。

需要注意: labels 参数里的字符顺序,必须和 levels 参数中的字符顺序一一对应、保持一致。

比如下面这种写法:

实例

sex=factor(c('f','m','f','f','m'),levels=c('f','m'),labels=c('female','male'),ordered=TRUE)
print(sex)

执行以上代码输出结果为:

[1] female male   female female male  
Levels: female < male

生成因子水平

我们可以使用 gl() 函数来生成因子水平,语法格式如下:

gl(n, k, length = n*k, labels = seq_len(n), ordered = FALSE)

参数说明

  • n: 设置 level 的个数
  • k: 设置每个 level 重复的次数
  • length: 设置长度
  • labels: 设置 level 的值
  • ordered: 设置是否 level 是排列好顺序的,布尔值。

实例

v <- gl(3, 4, labels = c("Google", "Runoob","Taobao"))
print(v)

执行以上代码输出结果为:

 [1] Google Google Google Google Runoob Runoob Runoob Runoob Taobao Taobao
[11] Taobao Taobao
Levels: Google Runoob Taobao

免责声明:文中图文均来自网络,如有侵权请联系删除,心愿游戏发布此文仅为传递信息,不代表心愿游戏认同其观点或证实其描述。

相关文章

更多

精选合集

更多

大家都在玩

热门话题

大家都在看

更多