帐号: 密码:
// 设为首页 // 收藏本站 // 请您留言 // 网址导航
远方教程-满足你的求知欲!
站内搜索:
HTML ASP PHP CSS DIV Dreamweaver Photoshop Word Excel PPT SEO技巧
您当前位置:网站首页 >> 统计之窗 >> R语言专区 >> 阅读文章

R技巧[40]:在R语言中使用SQL语句

来源:远方教程 作者:远方教程 发布时间:2019-08-27 查看次数:3606 访问[新版]

        R中还有一个有趣的sqldf包,它可以让你用SQL来操作dataframe,这种功能能让会R的人能练习SQL,会SQL的人能练习R,不得不感叹R语言的强大技能和神奇魅力。值得一提的是在运用sqldf包时可能要对R软件升级到3.1.0版以上,否则安装不会成功。

       越来越多的公司在招聘的时候都要求数据分析师除了要掌握统计建模和数据挖掘的理论方法和编程能力外,还要求其具备使用sql的能力。下面是我利用sqldf()完成的一些程序,虽然简单,但这是学习的第一步。

library(sqldf)
name<-c(rep('张三',1,3),rep('李四',3))
subject<-c('数学','语文','英语','数学','语文','英语')
score<-c(89,80,70,90,70,80)
stuid<-c(1,1,1,2,2,2)
stuscore<-data.frame(name,subject,score,stuid)

在R语言中使用SQL语句-远方教程

下面进行一些SQL基本练习

 1.计算每个人的总成绩并排名(要求显示字段:姓名,总成绩)

> sqldf('select name,sum(score) as allscore from stuscore group by name order by allscore')

name allscore
1 张三 239
2 李四 240

2.计算每个人的总成绩并排名(要求显示字段: 学号,姓名,总成绩)

> sqldf('select name,stuid,sum(score) as allscore from stuscore group by name order by allscore')

name stuid allscore
1 张三 1 239
2 李四 2 240

3.计算每个人单科的最高成绩(要求显示字段: 学号,姓名,课程,最高成绩)

> sqldf('select stuid,name,subject, max(score) as maxscore from stuscore group by stuid')

stuid name subject maxscore
1 1 张三 数学 89
2 2 李四 数学 90

4.计算每个人的平均成绩(要求显示字段: 学号,姓名,平均成绩)

> sqldf('select stuid,name,subject, avg(score) as avgscore from stuscore group by stuid')

stuid name subject avgscore
1 1 张三 英语 79.66667
2 2 李四 英语 80.00000

5.列出各门课程成绩最好的学生(要求显示字段: 学号,姓名,科目,成绩)

> sqldf('select stuid,name,subject,max(score) as maxscore from stuscore group by subject order by stuid')

stuid name subject maxscore
1 1 张三 语文 80
2 2 李四 数学 90
3 2 李四 英语 80

6.列出各门课程的平均成绩(要求显示字段:课程,平均成绩)

> sqldf('select subject,avg(score) as avgscore from stuscore group by subject')

subject avgscore
1 数学 89.5
2 英语 75.0 3 语文 75.0

打印 打印 | 关闭 关闭 评论
相关文章
图片新闻
站内搜索  
搜索
猜您喜欢  
最新更新  
阅读排行  
关于我们 | 联系方式 | 大事记 | 免责声明 | | 给我留言
部分广告源自金山联盟2345联盟 QQ咨询 站长之家QQ群:232617873
Copyright 2024 远方教程 © All Rights Reserved.

回顶部