R语言之分组数据处理
在我们日常处理数据过程中,经常需要对分类或者分组数据进行相对应的函数处理,以下是个人觉得比较好用的几个函数。
#分组变量的处理方法
#tapply()函数
#by()
#aggregate()
#plyr包#table()
第一步:创建数据,常见数据形式为matrix,data.frame
sex<-c("female","man","female","man","man","man")
diploma<-c("本科","硕士","本科","本科","本科","硕士")
salary<-c(5000,13000,6000,4500,5500,14000)
data.2<-data.frame(sex,diploma,salary)
数据内容如下
我们如果想要了解不同性别的收入,或者不同文凭的收入,亦或者根据两个分组变量来查看具体的收入,以下函数相信可以帮你。
#tapply()
通过?tapply初步了解该函数的具体有哪些参数,以及参数具体内容
可知x为我们要进行处理的变量,而INDEX是我们要根据那个变量分类,FUN就是对x进行何种处理,例如求和sum,求均值mean等
tapply(data.2$salary,data.2$sex,sum)
tapply(data.2$salary,list(data.2$sex,data.2$diploma),mean)
输出结果如下,即salary为x,要进行处理的变量,sex即为,根据性别差异统计收入
当,依据分组变量超过一,可以用一个列表list表示,不可以用连接符号c。
#by(),按照学习tapply的思路,by的参数以及用法雷同。
by(data.2$salary,data.2$sex,sum)
by(data.2$salary,list(data.2$sex,data.2$diploma),sum)
输出结果:
可以看到只是在输出结果的形式有差异。
#aggregate()函数
对于aggregate()函数的参数表示方法,和用lm函数求回归的输入一样,即如salary~sex+diploma
salary为要进行处理的变量,而sex,diploma为分组依据变量,用~连接。
#table()
table函数可以生成2*2的列联表,也就是对数据进行分类汇总。
以后课余时间会继续根据大三课程更新,有时间序列分析,多元统计分析,统计计算,应用回归,以及数据处理,画图的一些简单介绍,本科菜鸟,如有问题,望见谅。以上内容参考网上已有资料。