R语言(5)——因子
来源:互联网 发布:简历封面 知乎 编辑:程序博客网 时间:2024/06/10 14:09
1 因子
1.1 因子含义:R预言中的因子(factor)的设计思想来源于统计学中的名义变量(nominal variables),或称为分类变量。
例如年龄中的:幼年、青年、中年、老年。这一类变量本质上不是数字,但是可以用数字为其编码、存储。
1.2 创建因子
#方法一> x<-c(10,8,12,10)> xf<-factor(x)> xf[1] 10 8 12 10Levels: 8 10 12#方法二:规定levels> xff<-factor(x,levels=c(8,10,12,15))> xff[1] 10 8 12 10Levels: 8 10 12 15
说为水平就是指一个名义变量(也就是R中的因子变量了)可能能取到的所有值。比如,年龄这个变量,“幼年、青年、中年、老年”这四个值时变量可能取到的。但如果我们到一所大学里做调研,被调查的人都是大学生,都是青年或中年,那么在这组样本里就没有出现幼年和老年。但我们是允许“幼年、老年”这样的值出现的。
1.3 因子的本质
> ages<-c("青年","中年","青年","中年","中年","青年")> fages<-factor(ages,levels=c("幼年","青年","中年","老年"))> fages[1] 青年 中年 青年 中年 中年 青年Levels: 幼年 青年 中年 老年> str(fages) Factor w/ 4 levels "幼年","青年",..: 2 3 2 3 3 2
2 常用函数
2.1 tapply() 按因子分组统计
tapply(m,n,f)
其中,m为待统计的数据,n为m中数据对应的因子,f为对m按n分组使用的函数。tapply函数根据n的类别,将向量m分割为一个一个的组,在针对每一组使用f函数。
注意m只能为向量。
例子
> d<-data.frame(list(gender=c("M","F","F","F","M","M")),age=c(49,20,30,35,18,19),income=c(5000,6000,8000,4000,10000,4000))> d gender age income1 M 49 50002 F 20 60003 F 30 80004 F 35 40005 M 18 100006 M 19 4000> d$ifOver30=ifelse(d$age>30,1,0)> d gender age income ifOver301 M 49 5000 12 F 20 6000 03 F 30 8000 04 F 35 4000 15 M 18 10000 06 M 19 4000 0> class(d$ifOver30)[1] "numeric"> class(d$gender)[1] "factor"> tapply(d$income,list(d$ifOver30,d$gender),mean) F M0 7000 70001 4000 5000
上面的例子中,我们首先创建了一个数据框,这个数据框包含六名工作者的年龄,性别,工资。我们希望考察:
30岁以上男性工作者的平均工资;
30岁以下男性工作者的平均工资;
30岁以上女性工作者的平均工资;
30岁以下女性工作者的平均工资;
因此我们应用tapply()函数,通过ifOver30和gender这列来进行分组,进而对各组数据的income数据应用mean函数,从而得到结果。
2.2 split()函数
split(m,n)函数做了tapply中的第一部工作:将向量m按照n分组,并输出分组。
例子
> d gender age income ifOver301 M 49 5000 12 F 20 6000 03 F 30 8000 04 F 35 4000 15 M 18 10000 06 M 19 4000 0> dd<-split(d$income,list(d$ifOver30,d$gender))> dd$`0.F`[1] 6000 8000$`1.F`[1] 4000$`0.M`[1] 10000 4000$`1.M`[1] 5000> dd["0.F"]$`0.F`[1] 6000 8000> dd$"0.F"[1] 6000 8000
0 0
- R语言(5)——因子
- (R语言)有序因子和无序因子
- R语言学习(5)-字符串和因子
- R语言学习:数据结构5-因子
- R语言-基础总结(因子)
- R语言里面的因子(factor)
- R语言基础-因子和有序因子
- R语言-因子和有序因子
- R语言-因子和有序因子
- R语言-因子与表格
- R语言之因子(factor)
- R语言--tapply,sapply(因子和列表的操作)
- R语言-因子与向量的转换
- 对R语言因子的浅读
- R语言—R语言常用语法
- R:因子
- 了解向量、因子、矩阵、数组、列表和数据框、时间序列(R语言)
- R语言学习备忘录(三):数组、矩阵、列表和数据框、因子的应用
- ubuntu12.04+hadoop2.2.0+zookeeper3.4.5+hbase0.96.2+hive0.13.1伪分布式环境部署
- Andriod 从源码的角度详解View,ViewGroup的Touch事件的分发机制
- JSRender之渲染模板
- 模仿ATM取款机功能
- POJ - 2152 Fire 树型DP
- R语言(5)——因子
- 在as3.0中创建一个填充渐变色的文本框
- 厨师全是光头,然后发现一根毛,更闹心。。。。
- WCF服务启动报错
- ThinkPHP 连贯操作
- PHPCMS截取首选文字
- jQuery 自定义插件
- 使用node.js + socket.io + redis实现基本的聊天室场景
- 开始刷leetcode day14:Minimum Size Subarray Sum