如何用r语言对数据分组1465 1760 1985 2270 2980 1375 1735 1940 2220 2670 1405

Python09

如何用r语言对数据分组1465 1760 1985 2270 2980 1375 1735 1940 2220 2670 1405,第1张

a<-c(1465, 1760, 1985, 2270, 2980, 1375, 1735, 1940, 2220, 2670, 1405)

## 求取数据的四分位数,然后分组:

x<-cut(a,quantile(a,seq(0,1,0.25)), include.lowest=TRUE)

首先,原始数据是由name(名字),class(班级),course(课程)和score(分数)组成的,将其导入R语言并存储在Mydata对象里

接下来,我们利用sqldf包来处理分组汇总的问题。

由于sqldf包不是R语言自带的,所以先用以下代码安装sqldf包:

install.packages("sqldf")

然后选择“China(Beijing)”镜像站点进行安装,R语言会同时自动安装“sqldf”包的依赖包。

安装好sqldf包及其依赖包后,输入以下代码加载sqldf包:

library(sqldf)

一切准备就绪,接下来用sqldf统计每个同学的总成绩和平均分:

sqldf("select name,sum(score) as score_sum,avg(score) as score_avg from Mydata group by name")

统计每个班级的总成绩:

sqldf("select class,sum(score) as score_sum from Mydata group by class")

统计每个班级的每门课程的总成绩和平均分:

sqldf("select class,course,sum(score) as score_sum,avg(score) as score_avg from Mydata group by class,course")

1、将数据通过group,by分组,之后n负1会返回每组中倒数第二的位置,之后slice,n负1提取我们要的数据。

2、通过group,split将数据源转换为list,使用map函数将在list每个子项中使用,增加代码ungroup即可。