第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

如何在R語(yǔ)言中使用SQL語(yǔ)句?

如何在R語(yǔ)言中使用SQL語(yǔ)句?

森林海 2018-10-02 14:10:20
如何在R語(yǔ)言中使用SQL語(yǔ)句? 
查看完整描述

1 回答

?
至尊寶的傳說(shuō)

TA貢獻(xiàn)1789條經(jīng)驗(yàn) 獲得超10個(gè)贊

R中還有一個(gè)有趣的sqldf包,它可以讓你用SQL來(lái)操作dataframe,這種功能能讓會(huì)R的人能練習(xí)SQL,會(huì)SQL的人能練習(xí)R,不得不感嘆R語(yǔ)言的強(qiáng)大技能和神奇魅力。
當(dāng)然也可以將R與外部數(shù)據(jù)庫(kù)連接,直接在R中操作數(shù)據(jù)庫(kù),并生成最終結(jié)果,這也是一種可行的方法。在R中連接數(shù)據(jù)庫(kù)需要安裝其它的擴(kuò)展包,根據(jù)連接方式不同我們有兩種選擇:一種是ODBC方式,需要安裝RODBC包并安裝ODBC驅(qū)動(dòng)。另一種是DBI方式,可以根據(jù)已經(jīng)安裝的數(shù)據(jù)庫(kù)類(lèi)型來(lái)安裝相應(yīng)的驅(qū)動(dòng)。因?yàn)楹笳弑A袅烁鲾?shù)據(jù)庫(kù)原本的特性,所以個(gè)人比較偏好用DBI連接方式。有下面這幾種主要的包提供了DBI連接:RMySQL,RSQLite,ROracle,RPostgreSQL。由名字看得出它們分別對(duì)應(yīng)了幾種主流的數(shù)據(jù)庫(kù)。
注:以上文字來(lái)自R-blogger—–《在R語(yǔ)言中使用SQL》
值得一提的是在運(yùn)用sqldf包時(shí)可能要對(duì)R軟件升級(jí)到3.1.0版以上,否則安裝不會(huì)成功,這里簡(jiǎn)單介紹一種在Windows環(huán)境下對(duì)R軟件自動(dòng)升級(jí)的方法。
Windows上升級(jí)R語(yǔ)言:
install.packages("installr");
library(installr) #加載包
updateR()

之后選擇“確定”就可以自動(dòng)更新了
雖然在R語(yǔ)言中有很多優(yōu)秀的函數(shù)如aggregate()和daply()可以對(duì)數(shù)據(jù)框統(tǒng)計(jì),但sql功能強(qiáng)大,不僅能實(shí)現(xiàn)數(shù)據(jù)的清洗、統(tǒng)計(jì)、運(yùn)算,還可以實(shí)現(xiàn)數(shù)據(jù)存儲(chǔ)、控制、定義和調(diào)用。越來(lái)越多的公司在招聘的時(shí)候都要求數(shù)據(jù)分析師除了要掌握統(tǒng)計(jì)建模和數(shù)據(jù)挖掘的理論方法和編程能力外,還要求其具備使用sql的能力,樓主也在積極學(xué)習(xí)sql當(dāng)中。
下面是我利用sqldf()完成的一些程序,雖然簡(jiǎn)單,但這是學(xué)習(xí)的第一步
> name<-c(rep('張三',1,3),rep('李四',3))
> subject<-c('數(shù)學(xué)','語(yǔ)文','英語(yǔ)','數(shù)學(xué)','語(yǔ)文','英語(yǔ)')
> score<-c(89,80,70,90,70,80)
> stuid<-c(1,1,1,2,2,2)
> stuscore<-data.frame(name,subject,score,stuid)
> library(sqldf)

1.計(jì)算每個(gè)人的總成績(jī)并排名(要求顯示字段:姓名,總成績(jī))
> sqldf('select name,sum(score) as allscore from stuscore group by name order by allscore')
name allscore
1 張三 239
2 李四 240

2.計(jì)算每個(gè)人的總成績(jī)并排名(要求顯示字段: 學(xué)號(hào),姓名,總成績(jī))
> 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.計(jì)算每個(gè)人單科的最高成績(jī)(要求顯示字段: 學(xué)號(hào),姓名,課程,最高成績(jī))
> sqldf('select stuid,name,subject, max(score) as maxscore from stuscore group by stuid')
stuid name subject maxscore
1 1 張三 數(shù)學(xué) 89
2 2 李四 數(shù)學(xué) 90

4.計(jì)算每個(gè)人的平均成績(jī)(要求顯示字段: 學(xué)號(hào),姓名,平均成績(jī))
> sqldf('select stuid,name,subject, avg(score) as avgscore from stuscore group by stuid')
stuid name subject avgscore
1 1 張三 英語(yǔ) 79.66667
2 2 李四 英語(yǔ) 80.00000

5.列出各門(mén)課程成績(jī)最好的學(xué)生(要求顯示字段: 學(xué)號(hào),姓名,科目,成績(jī))
> sqldf('select stuid,name,subject,max(score) as maxscore from stuscore group by subject order by stuid')
stuid name subject maxscore
1 1 張三 語(yǔ)文 80
2 2 李四 數(shù)學(xué) 90
3 2 李四 英語(yǔ) 80

8.列出各門(mén)課程的平均成績(jī)(要求顯示字段:課程,平均成績(jī))
> sqldf('select subject,avg(score) as avgscore from stuscore group by subject')
subject avgscore
1 數(shù)學(xué) 89.5
2 英語(yǔ) 75.0
3 語(yǔ)文 75.0

查看完整回答
反對(duì) 回復(fù) 2018-10-22
  • 1 回答
  • 0 關(guān)注
  • 2325 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)