R 语言学习教程,从入门到精通,R 因子(13)

1、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

1.1、因子水平标签

接下来我们使用 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

1.2、生成因子水平

我们可以使用 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", "Nhooo","Taobao"))
print(v)

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

 [1] Google Google Google Google Nhooo Nhooo Nhooo Nhooo Taobao Taobao
[11] Taobao Taobao
Levels: Google Nhooo Taobao
  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值