R语言-因子

1.因子的创建
因子利用函数factor()来创建。其格式为

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

x为字符型和数值型向量;levels为指定的因子水平;labels为指定的因子水平的名称;exclude表示要剔除的水平;ordered 表示因子的水平是否有次序;nmax表示因子数目的上界。

> x<-c(4, 6 ,4 ,6 ,6 ,6 ,6 ,3 ,1 ,4 ,5, 3 ,1 ,2 ,6, 4 ,5 ,3 ,6, 2)
> x
 [1] 4 6 4 6 6 6 6 3 1 4 5 3 1 2 6 4 5 3 6 2
> fact<-factor(x)
> fact#有六个水平:1 2 3 4 5 6
 [1] 4 6 4 6 6 6 6 3 1 4 5 3 1 2 6 4 5 3 6 2
Levels: 1 2 3 4 5 6

指定因子水平的名称

> x<-c(4, 6 ,4 ,6 ,6 ,6 ,6 ,3 ,1 ,4 ,5, 3 ,1 ,2 ,6, 4 ,5 ,3 ,6, 2)
> fact<-factor(x,label=c("A","B","C","D","E","F"))
> fact
 [1] D F D F F F F C A D E C A B F D E C F B
Levels: A B C D E F

定义有次序水平的因子

> x<-c(4, 6 ,4 ,6 ,6 ,6 ,6 ,3 ,1 ,4 ,5, 3 ,1 ,2 ,6, 4 ,5 ,3 ,6, 2)
> fact<-factor(x,label=c("A","B","C","D","E","F"),order=T)
> fact
 [1] D F D F F F F C A D E C A B F D E C F B
Levels: A < B < C < D < E < F

用函数gl创建因子向量

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

n表示给定的水平个数;k表示每个水平的重复数。

> fa<-gl(2,5)
> fa
 [1] 1 1 1 1 1 2 2 2 2 2
Levels: 1 2
> fa<-gl(2,5,lable=c("F","M"))
> fa<-gl(2,5,label=c("F","M"))
> fa
 [1] F F F F F M M M M M
Levels: F M
> fa<-gl(2,5,label=c("F","M"),ordered=T)
> fa
 [1] F F F F F M M M M M
Levels: F < M

2.tapply函数

tapply(X, INDEX, FUN = NULL, ..., simplify = TRUE)

x表示向量;INDEX表示因子或者因子列表;FUN为函数;simply为逻辑参数,如果为FALSE,tapply返回的是列表,如果为TRUE,返回的是向量。

> x<-sample(1:4,20,replace=T)
> x
 [1] 3 2 4 3 3 4 3 4 3 3 3 4 1 1 2 3 2 1 3 4
> y<-factor(x,labels=c("A","B","C","D"))
> y
 [1] C B D C C D C D C C C D A A B C B A C D
Levels: A B C D
> tapply(x,y,mean)
A B C D 
1 2 3 4 
> tapply(x,y,sum)#返回向量
 A  B  C  D 
 3  6 27 20 
> tapply(x,y,sum,simplify=F)#返回列表
$A
[1] 3
$B
[1] 6
$C
[1] 27
$D
[1] 20
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 因子是用于对数据进行分类并将其存储为级别的数据对象。 它们可以存储字符串和整数。 它们在具有有限数量的唯一值的列中...
    yuanyb阅读 3,688评论 0 0
  • 1、变量分类: (1)连续型变量(2)名义型变量(3)有序型变量在 R 中,名义型变量和有序型变量称为因子(fac...
    Zhigang_Han阅读 3,821评论 0 1
  • 感谢Robert I.Kabacoff 著作了这本书,同时感谢高涛、肖楠、陈钢编译此书。 最近在学习《R语言实战...
    数据斯基阅读 10,556评论 0 21
  • 永远记得“功夫不负有心人” 手机或电脑里无论有多少书,其内容内容都不会被保存在脑子里。其内容既不能融入你的身心,也...
    高海洋1319艾尚阅读 1,711评论 0 0
  • 0610周六复盘的主要流程: 1.目的和任务目标(期待的结果) 目的:陪朋友逛街 目标:去Dfcoco看下新款,不...
    墨紫七阅读 1,495评论 0 0

友情链接更多精彩内容