R語言學(xué)生成績分析實例

學(xué)生成績分析實例


讀入學(xué)生成績

#setwd("E:\\DataAnalysis")
scores <- read.table("scores.txt", header=TRUE, row.names="num")
head(scores)
##     class chn math   eng  phy  chem politics  bio history  geo pe
## 158     3  99  120 114.0 70.0 49.50     50.0 49.0    48.5 49.5 60
## 442     7 107  120 118.5 68.6 43.00     49.0 48.5    48.5 49.0 56
## 249     4  98  120 116.0 70.0 47.50     47.0 49.0    47.5 49.0 60
## 573     9 102  113 111.5 70.0 47.00     49.0 49.0    49.0 49.5 60
## 310     5 103  120 111.5 70.0 44.75     46.5 48.0    48.0 48.0 60
## 613    10  98  120 113.0 70.0 46.75     47.5 47.5    47.0 48.5 60
str(scores)    
## 'data.frame':    599 obs. of  11 variables:
##  $ class   : int  3 7 4 9 5 10 8 2 5 9 ...
##  $ chn     : num  99 107 98 102 103 ...
##  $ math    : int  120 120 120 113 120 120 120 117 120 118 ...
##  $ eng     : num  114 118 116 112 112 ...
##  $ phy     : num  70 68.6 70 70 70 70 68.6 70 64.4 66.5 ...
##  $ chem    : num  49.5 43 47.5 47 44.8 ...
##  $ politics: num  50 49 47 49 46.5 47.5 46.5 50 49 47.5 ...
##  $ bio     : num  49 48.5 49 49 48 47.5 47.5 48 48.5 48.5 ...
##  $ history : num  48.5 48.5 47.5 49 48 47 47.5 48 47.5 46.5 ...
##  $ geo     : num  49.5 49 49 49.5 48 48.5 48 48.5 49 49.5 ...
##  $ pe      : int  60 56 60 60 60 60 60 56 56 52 ...
names(scores)  
##  [1] "class"    "chn"      "math"     "eng"      "phy"      "chem"    
##  [7] "politics" "bio"      "history"  "geo"      "pe"
attach(scores)

給出數(shù)據(jù)的概略信息

summary(scores)
##      class             chn              math             eng        
##  Min.   : 1.000   Min.   : 26.50   Min.   :  3.00   Min.   : 15.00  
##  1st Qu.: 3.000   1st Qu.: 78.25   1st Qu.: 84.00   1st Qu.: 74.00  
##  Median : 6.000   Median : 84.00   Median :100.00   Median : 93.00  
##  Mean   : 5.519   Mean   : 83.24   Mean   : 93.98   Mean   : 85.55  
##  3rd Qu.: 8.000   3rd Qu.: 89.00   3rd Qu.:111.00   3rd Qu.:103.50  
##  Max.   :10.000   Max.   :107.00   Max.   :120.00   Max.   :118.50  
##       phy             chem          politics         bio       
##  Min.   : 7.00   Min.   : 8.00   Min.   :15.0   Min.   :14.00  
##  1st Qu.:49.00   1st Qu.:27.75   1st Qu.:39.5   1st Qu.:40.00  
##  Median :58.80   Median :37.00   Median :43.5   Median :44.00  
##  Mean   :54.15   Mean   :34.63   Mean   :42.0   Mean   :42.17  
##  3rd Qu.:64.40   3rd Qu.:42.50   3rd Qu.:45.5   3rd Qu.:46.00  
##  Max.   :70.00   Max.   :49.75   Max.   :50.0   Max.   :50.00  
##     history           geo              pe       
##  Min.   : 8.00   Min.   :10.50   Min.   :48.00  
##  1st Qu.:32.50   1st Qu.:43.00   1st Qu.:52.00  
##  Median :39.00   Median :45.50   Median :56.00  
##  Mean   :36.82   Mean   :43.92   Mean   :53.86  
##  3rd Qu.:43.00   3rd Qu.:47.00   3rd Qu.:56.00  
##  Max.   :49.00   Max.   :50.00   Max.   :60.00
summary(scores$math)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    3.00   84.00  100.00   93.98  111.00  120.00

選擇某行奸焙,求一個學(xué)生總分

child <- scores['239',]
sum(child) 
## [1] 647.45
scores.class4 <- scores[class==4,]    # 挑出4班的

求每個班的平均數(shù)學(xué)成績

aver <- tapply(math, class, mean)
aver
##        1        2        3        4        5        6        7        8 
## 92.82258 93.17241 88.58621 97.29688 97.89286 92.40678 90.29310 98.65000 
##        9       10 
## 94.35484 94.08065

畫條曲線看看每個班的數(shù)學(xué)平均成績

plot(aver, type='b', ylim=c(80,100), main="Average Of Math In Class", xlab="Class", ylab="Average Of Math")
unnamed-chunk-5-1.png

生成數(shù)據(jù)的二維列聯(lián)表

table(math,class)
##      class
## math  1 2 3 4 5 6 7 8 9 10
##   3   0 0 0 0 0 0 1 0 0  0
##   9   1 0 0 0 0 0 0 0 0  0
##   10  1 0 1 0 0 0 0 0 0  0
##   18  0 0 0 1 0 1 0 0 1  0
##   19  0 0 0 0 0 0 1 0 0  0
##   20  0 0 1 0 0 0 0 1 0  0
##   22  0 0 1 0 0 0 0 0 0  0
##   24  0 0 0 0 0 0 0 0 1  0
##   26  0 0 0 1 0 0 0 0 0  0
##   29  0 0 0 0 0 0 0 1 0  0
##   32  0 0 1 0 0 0 0 0 0  0
##   34  0 0 0 0 0 1 0 0 0  0
##   35  0 0 0 1 1 0 0 0 0  1
##   36  0 0 1 0 0 1 1 0 0  0
##   38  0 0 0 0 0 0 1 0 0  0
##   40  1 0 0 0 0 0 0 0 1  0
##   41  0 0 0 1 0 0 0 0 0  1
##   42  0 0 0 0 1 0 0 0 0  1
##   43  0 0 1 0 0 0 0 0 0  0
##   44  0 0 0 0 0 0 0 0 0  1
##   45  0 0 0 0 0 0 1 0 0  1
##   46  0 1 0 0 0 0 0 0 0  0
##   47  0 1 1 0 1 1 2 0 0  0
##   49  0 0 0 0 0 0 0 0 0  1
##   51  0 1 0 0 0 0 0 0 0  0
##   52  0 0 0 1 0 0 0 0 0  0
##   53  0 0 1 0 0 0 0 0 0  0
##   56  0 1 0 0 0 0 0 0 0  1
##   57  0 1 1 0 0 0 0 0 1  0
##   58  2 1 0 0 0 0 0 0 0  0
##   59  1 0 0 1 1 2 0 0 0  1
##   60  0 1 2 0 0 0 1 0 0  0
##   61  0 1 0 0 0 0 0 0 0  0
##   62  1 0 0 0 0 0 0 0 0  0
##   63  0 1 1 0 0 0 0 0 0  1
##   64  0 0 0 0 0 0 0 0 1  0
##   65  1 0 0 0 0 0 0 0 1  1
##   66  0 0 0 0 0 1 0 2 0  0
##   67  0 0 0 0 0 0 2 0 2  0
##   68  0 0 0 0 0 1 0 0 1  0
##   69  2 0 0 0 0 1 2 0 1  0
##   70  0 0 0 0 2 0 1 0 1  1
##   71  0 0 1 0 0 0 0 1 0  0
##   72  0 1 0 0 0 0 1 2 1  1
##   73  2 1 0 0 0 1 0 0 0  0
##   74  0 0 0 1 1 0 1 0 0  1
##   75  0 1 1 0 0 2 0 0 1  1
##   76  0 0 1 0 0 1 0 0 1  0
##   77  0 0 1 0 0 0 1 0 0  0
##   78  0 0 0 0 2 1 1 1 0  0
##   79  1 0 0 0 0 1 1 0 1  0
##   80  0 1 1 2 0 0 0 0 0  1
##   81  0 0 0 0 0 1 1 0 1  0
##   82  0 2 0 1 0 1 0 0 1  1
##   83  2 0 0 1 0 1 0 0 1  1
##   84  0 1 1 0 0 1 0 1 1  0
##   85  0 1 1 0 0 0 0 1 0  2
##   86  0 0 1 1 0 1 0 0 1  0
##   87  0 0 1 1 1 2 0 1 0  0
##   88  0 1 0 0 0 0 1 0 1  3
##   89  2 2 0 2 0 0 0 3 1  0
##   90  3 0 1 1 1 0 3 1 1  1
##   91  1 0 0 0 0 3 0 1 1  0
##   92  2 0 0 1 2 0 0 0 1  0
##   93  0 3 1 0 3 1 1 2 0  0
##   94  1 0 0 1 3 1 1 0 2  0
##   95  3 0 1 3 0 2 1 3 1  2
##   96  0 1 2 3 0 0 2 3 1  1
##   97  2 2 2 0 2 1 2 1 0  2
##   98  3 2 2 1 1 3 1 2 0  0
##   99  2 2 1 1 1 0 0 2 0  0
##   100 1 4 1 1 2 2 3 1 2  0
##   101 2 1 1 0 1 1 0 2 1  1
##   102 0 1 4 3 0 0 0 1 2  2
##   103 0 0 0 3 0 2 1 1 0  0
##   104 2 3 0 2 1 0 0 0 0  3
##   105 3 1 2 1 2 0 0 2 0  2
##   106 1 4 0 1 3 1 2 1 1  2
##   107 3 0 2 1 0 2 0 1 0  1
##   108 0 0 3 1 5 0 0 0 3  1
##   109 1 1 3 1 5 1 2 1 1  0
##   110 1 1 0 2 1 0 2 1 0  1
##   111 3 2 0 5 2 2 3 0 4  2
##   112 1 1 4 3 5 0 3 0 2  1
##   113 2 2 0 2 0 1 0 1 3  3
##   114 1 0 0 1 1 2 2 2 2  2
##   115 2 2 1 4 0 3 0 2 1  2
##   116 0 0 1 0 1 1 2 3 3  2
##   117 1 3 2 1 0 1 1 3 0  4
##   118 3 0 1 2 2 4 2 3 3  0
##   119 0 1 0 2 0 0 0 2 2  1
##   120 1 1 2 2 2 3 4 4 3  4

求4班每一科的平均成績

subjects <- c('chn','math','eng','phy','chem','politics','bio','history','geo','pe')
sapply(scores[class==4, subjects], mean)
##      chn     math      eng      phy     chem politics      bio  history 
## 83.10938 97.29688 85.60156 54.30469 34.67969 42.41406 41.79688 36.77344 
##      geo       pe 
## 44.24219 54.31250

求各班各科的平均成績

aggregate(scores[subjects], by=list(class), mean)
##    Group.1      chn     math      eng      phy     chem politics      bio
## 1        1 82.98387 92.82258 92.45161 56.04516 34.95161 42.57258 42.29839
## 2        2 81.57759 93.17241 85.01724 54.39483 34.60776 43.13793 42.05172
## 3        3 82.62069 88.58621 82.46552 51.59483 32.33190 41.99138 41.59483
## 4        4 83.10938 97.29688 85.60156 54.30469 34.67969 42.41406 41.79688
## 5        5 84.74107 97.89286 83.66964 56.10000 33.91518 42.05357 42.57143
## 6        6 83.14407 92.40678 78.57627 51.74068 33.36864 40.64407 41.55932
## 7        7 83.01724 90.29310 87.00862 51.75172 33.98276 41.63793 42.51724
## 8        8 83.65833 98.65000 86.91667 56.02333 36.07917 41.70000 42.40833
## 9        9 83.20968 94.35484 86.48387 54.29516 36.11694 41.94355 42.72581
## 10      10 84.33871 94.08065 86.66774 55.08548 36.01210 41.86290 42.22581
##     history      geo       pe
## 1  37.03226 43.44355 54.12903
## 2  38.59483 43.60345 54.68966
## 3  35.49138 42.97414 54.55172
## 4  36.77344 44.24219 54.31250
## 5  37.77679 43.96429 54.00000
## 6  34.46610 43.37288 53.22034
## 7  37.46552 44.22414 53.72414
## 8  37.84167 44.81667 52.93333
## 9  36.07258 44.30645 53.48387
## 10 36.78226 44.14516 53.61290
## aggregate

看看數(shù)學(xué)成績的分布圖

hist(math)
unnamed-chunk-9-1.png

默認(rèn)是按頻數(shù)形成的直方圖赶袄,設(shè)置freq參數(shù)可以畫密度分布圖富腊。

hist(math, freq=FALSE)
lines(density(math), col='blue')
rug(jitter(math))
unnamed-chunk-10-1.png
#軸須圖上荡,在軸旁邊出現(xiàn)一些小線段颜骤,jitter是加噪函數(shù)

核密度圖

plot(density(chn), col='blue', lwd=2)
lines(density(math), col='red', lwd=2)
unnamed-chunk-11-1.png

箱線圖

boxplot(math)
unnamed-chunk-12-1.png
boxplot.stats(math)
## $stats
## [1]  44  84 100 111 120
## 
## $n
## [1] 599
## 
## $conf
## [1]  98.25696 101.74304
## 
## $out
##  [1] 38 42 35 40 43 36 41 40 36 18 26 36 42 32 41 29 18 24 10 20 34 19 10
## [24]  3 35 20 35 18 22  9
#這個函數(shù)可以看到畫出箱線圖的具體的數(shù)據(jù)值

并列箱線圖鞠绰,看各班的數(shù)據(jù)分布情況

boxplot(math ~ class, data=scores)
#Add Average
lines(tapply(math,class,mean), col='blue', type='b')
unnamed-chunk-13-1.png

可以看出2班沒有拖后腿的牧抵,4班有6個拖后腿的

看看各科成績的相關(guān)性

cor(scores[,subjects])
##                chn      math       eng       phy      chem  politics
## chn      1.0000000 0.6588126 0.7326778 0.6578172 0.6271155 0.7257003
## math     0.6588126 1.0000000 0.8079255 0.8860467 0.8304643 0.7090681
## eng      0.7326778 0.8079255 1.0000000 0.8170998 0.7868710 0.7498946
## phy      0.6578172 0.8860467 0.8170998 1.0000000 0.8615512 0.7081717
## chem     0.6271155 0.8304643 0.7868710 0.8615512 1.0000000 0.6441334
## politics 0.7257003 0.7090681 0.7498946 0.7081717 0.6441334 1.0000000
## bio      0.6902282 0.7951987 0.7731044 0.8077105 0.7578770 0.7071181
## history  0.6971145 0.7732791 0.7948219 0.8100599 0.7993298 0.7192860
## geo      0.6438662 0.7723853 0.7265406 0.7814152 0.7264814 0.6906930
## pe       0.2712453 0.3300249 0.3159347 0.3251233 0.2769066 0.3033607
##                bio   history       geo        pe
## chn      0.6902282 0.6971145 0.6438662 0.2712453
## math     0.7951987 0.7732791 0.7723853 0.3300249
## eng      0.7731044 0.7948219 0.7265406 0.3159347
## phy      0.8077105 0.8100599 0.7814152 0.3251233
## chem     0.7578770 0.7993298 0.7264814 0.2769066
## politics 0.7071181 0.7192860 0.6906930 0.3033607
## bio      1.0000000 0.7771735 0.8382525 0.2428081
## history  0.7771735 1.0000000 0.7731044 0.2708434
## geo      0.8382525 0.7731044 1.0000000 0.2605251
## pe       0.2428081 0.2708434 0.2605251 1.0000000

可以看出:數(shù)學(xué)和物理的相關(guān)性達(dá)88%蝶俱,物理和化學(xué)成績的相關(guān)性達(dá)86%班利。

畫個圖出來看看

pairs(scores[,subjects])
unnamed-chunk-15-1.png

詳細(xì)看看數(shù)學(xué)和物理的線性相關(guān)性

cor_phy_math <- lm(phy ~ math, scores)
plot(math, phy)
abline(cor_phy_math)
unnamed-chunk-16-1.png
cor_phy_math
## 
## Call:
## lm(formula = phy ~ math, data = scores)
## 
## Coefficients:
## (Intercept)         math  
##      4.7374       0.5258

也就是說擬合公式為:phy = 0.5258 * math + 4.7374,為什么是0.52?因為數(shù)學(xué)最高分為120榨呆,物理最高分為70

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末罗标,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子积蜻,更是在濱河造成了極大的恐慌闯割,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,888評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件竿拆,死亡現(xiàn)場離奇詭異宙拉,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)丙笋,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,677評論 3 399
  • 文/潘曉璐 我一進(jìn)店門谢澈,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人御板,你說我怎么就攤上這事锥忿。” “怎么了怠肋?”我有些...
    開封第一講書人閱讀 168,386評論 0 360
  • 文/不壞的土叔 我叫張陵敬鬓,是天一觀的道長。 經(jīng)常有香客問我笙各,道長钉答,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,726評論 1 297
  • 正文 為了忘掉前任杈抢,我火速辦了婚禮数尿,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘惶楼。我一直安慰自己砌创,他們只是感情好虏缸,可當(dāng)我...
    茶點故事閱讀 68,729評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著嫩实,像睡著了一般刽辙。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上甲献,一...
    開封第一講書人閱讀 52,337評論 1 310
  • 那天宰缤,我揣著相機(jī)與錄音,去河邊找鬼晃洒。 笑死慨灭,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的球及。 我是一名探鬼主播氧骤,決...
    沈念sama閱讀 40,902評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼吃引!你這毒婦竟也來了筹陵?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,807評論 0 276
  • 序言:老撾萬榮一對情侶失蹤镊尺,失蹤者是張志新(化名)和其女友劉穎朦佩,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體庐氮,經(jīng)...
    沈念sama閱讀 46,349評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡语稠,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,439評論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了弄砍。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片仙畦。...
    茶點故事閱讀 40,567評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖音婶,靈堂內(nèi)的尸體忽然破棺而出慨畸,到底是詐尸還是另有隱情,我是刑警寧澤桃熄,帶...
    沈念sama閱讀 36,242評論 5 350
  • 正文 年R本政府宣布先口,位于F島的核電站型奥,受9級特大地震影響瞳收,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜厢汹,卻給世界環(huán)境...
    茶點故事閱讀 41,933評論 3 334
  • 文/蒙蒙 一螟深、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧烫葬,春花似錦界弧、人聲如沸凡蜻。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,420評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽划栓。三九已至,卻和暖如春条获,著一層夾襖步出監(jiān)牢的瞬間忠荞,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,531評論 1 272
  • 我被黑心中介騙來泰國打工帅掘, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留委煤,地道東北人。 一個月前我還...
    沈念sama閱讀 48,995評論 3 377
  • 正文 我出身青樓修档,卻偏偏與公主長得像碧绞,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子吱窝,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,585評論 2 359

推薦閱讀更多精彩內(nèi)容