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)

数据内容如下

R语言之分组数据处理

我们如果想要了解不同性别的收入,或者不同文凭的收入,亦或者根据两个分组变量来查看具体的收入,以下函数相信可以帮你。

#tapply()

通过?tapply初步了解该函数的具体有哪些参数,以及参数具体内容

R语言之分组数据处理

可知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即为,根据性别差异统计收入

R语言之分组数据处理

当,依据分组变量超过一,可以用一个列表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)

输出结果:

R语言之分组数据处理

R语言之分组数据处理

可以看到只是在输出结果的形式有差异。

#aggregate()函数

R语言之分组数据处理

对于aggregate()函数的参数表示方法,和用lm函数求回归的输入一样,即如salary~sex+diploma

salary为要进行处理的变量,而sex,diploma为分组依据变量,用~连接。

#table()

table函数可以生成2*2的列联表,也就是对数据进行分类汇总。

R语言之分组数据处理

以后课余时间会继续根据大三课程更新,有时间序列分析,多元统计分析,统计计算,应用回归,以及数据处理,画图的一些简单介绍,本科菜鸟,如有问题,望见谅。以上内容参考网上已有资料。