
1、數據讀取
> student_score_data<-read.table("C:/Users/wpguoc/Desktop/cnm.csv",sep = ",",header = T)
> student_score_data
學生姓名 統計學 數學 營銷學 管理學 會計學
1 張青松 68 85 84 89 86
2 王宇翔 85 91 63 76 66
3 田思雨 74 74 61 80 69
4 徐麗娜 88 100 49 71 66
5 趙瑩瑩 63 82 89 91 85
6 王智強 78 84 51 60 60
7 宋麗媛 90 78 59 72 66
8 袁芳芳 80 100 53 73 70
9 張建國 58 51 79 91 85
10 張志傑 63 70 91 85 82
2、描述性統計
# 按照學生姓名升序排列 > student_score_data[order(student_score_data$學生姓名),] 學生姓名 統計學 數學 營銷學 管理學 會計學 7 宋麗媛 90 78 59 72 66 3 田思雨 74 74 61 80 69 2 王宇翔 85 91 63 76 66 6 王智強 78 84 51 60 60 4 徐麗娜 88 100 49 71 66 8 袁芳芳 80 100 53 73 70 9 張建國 58 51 79 91 85 1 張青松 68 85 84 89 86 10 張志傑 63 70 91 85 82 5 趙瑩瑩 63 82 89 91 85 # 按照數學成績降序排列 > student_score_data[order(-student_score_data$數學),] 學生姓名 統計學 數學 營銷學 管理學 會計學 4 徐麗娜 88 100 49 71 66 8 袁芳芳 80 100 53 73 70 2 王宇翔 85 91 63 76 66 1 張青松 68 85 84 89 86 6 王智強 78 84 51 60 60 5 趙瑩瑩 63 82 89 91 85 7 宋麗媛 90 78 59 72 66 3 田思雨 74 74 61 80 69 10 張志傑 63 70 91 85 82 9 張建國 58 51 79 91 85 # 按照學生姓名降序排列 > student_score_data[order(student_score_data$學生姓名,decreasing=TRUE),] 學生姓名 統計學 數學 營銷學 管理學 會計學 5 趙瑩瑩 63 82 89 91 85 10 張志傑 63 70 91 85 82 1 張青松 68 85 84 89 86 9 張建國 58 51 79 91 85 8 袁芳芳 80 100 53 73 70 4 徐麗娜 88 100 49 71 66 6 王智強 78 84 51 60 60 2 王宇翔 85 91 63 76 66 3 田思雨 74 74 61 80 69 7 宋麗媛 90 78 59 72 66 # 統計每個學生的總分將其添加在最后一列 > cbind(student_score_data,total = apply(student_score_data[,2:6],1,sum)) 學生姓名 統計學 數學 營銷學 管理學 會計學 total 1 張青松 68 85 84 89 86 412 2 王宇翔 85 91 63 76 66 381 3 田思雨 74 74 61 80 69 358 4 徐麗娜 88 100 49 71 66 374 5 趙瑩瑩 63 82 89 91 85 410 6 王智強 78 84 51 60 60 333 7 宋麗媛 90 78 59 72 66 365 8 袁芳芳 80 100 53 73 70 376 9 張建國 58 51 79 91 85 364 10 張志傑 63 70 91 85 82 391
# 對所有行求均值 > apply(student_score_data[,2:6], 1,mean) [1] 82.4 76.2 71.6 74.8 82.0 66.6 73.0 75.2 72.8 78.2
3、缺失值的處理
> student_score_data_na<-read.table("C:/Users/wpguoc/Desktop/cnm.csv",sep = ",",header = T)
> student_score_data_na
學生姓名 統計學 數學 營銷學 管理學 會計學
1 張青松 68 85 84 89 86
2 王宇翔 85 91 63 76 66
3 田思雨 74 74 61 80 69
4 徐麗娜 88 100 49 NA 66
5 趙瑩瑩 63 82 89 91 85
6 王智強 78 84 51 60 60
7 宋麗媛 90 78 59 72 66
8 袁芳芳 80 100 53 73 70
9 張建國 58 NA 79 91 85
10 張志傑 63 70 91 85 82
# 判斷是否有缺失值
> is.na(student_score_data_na)
學生姓名 統計學 數學 營銷學 管理學 會計學
[1,] FALSE FALSE FALSE FALSE FALSE FALSE
[2,] FALSE FALSE FALSE FALSE FALSE FALSE
[3,] FALSE FALSE FALSE FALSE FALSE FALSE
[4,] FALSE FALSE FALSE FALSE TRUE FALSE
[5,] FALSE FALSE FALSE FALSE FALSE FALSE
[6,] FALSE FALSE FALSE FALSE FALSE FALSE
[7,] FALSE FALSE FALSE FALSE FALSE FALSE
[8,] FALSE FALSE FALSE FALSE FALSE FALSE
[9,] FALSE FALSE TRUE FALSE FALSE FALSE
[10,] FALSE FALSE FALSE FALSE FALSE FALSE
# 剔除含缺失值的行
> student_score_data_not_na<-na.omit(student_score_data_na)
> student_score_data_not_na
學生姓名 統計學 數學 營銷學 管理學 會計學
1 張青松 68 85 84 89 86
2 王宇翔 85 91 63 76 66
3 田思雨 74 74 61 80 69
5 趙瑩瑩 63 82 89 91 85
6 王智強 78 84 51 60 60
7 宋麗媛 90 78 59 72 66
8 袁芳芳 80 100 53 73 70
10 張志傑 63 70 91 85 82
4、自定義函數統計學生成績的平均值、中位數、極差和標准差
> myfun<-function(x){
+ n<-length(x)
+ mean<-sum(x) / n
+ median<-median(x)
+ r<-max(x) - min(x)
+ s<-sd(x)
+ summ<-data.frame(c(mean,median,r,s),
+ row.names=c("平均數","中位數","極差","標准差"))
+ names(summ)<-"值"
+ return(summ)
+ }
# 利用自定義函數描述學生成績表中的統計學學科
> myfun(student_score_data$統計學)
值
平均數 74.70000
中位數 76.00000
極差 32.00000
標准差 11.32402
5、編輯數據集
# 重命名
> install.packages("reshape")
trying URL 'https://dirichlet.mat.puc.cl/bin/windows/contrib/3.5/reshape_0.8.8.zip'
Content type 'application/zip' length 169184 bytes (165 KB)
downloaded 165 KB
package ‘reshape’ successfully unpacked and MD5 sums checked
The downloaded binary packages are in
C:\Users\AppData\Local\Temp\RtmpsPCv5O\downloaded_packages
> library(reshape)
> rename(student_score_data,c(學生姓名="姓名"))
姓名 統計學 數學 營銷學 管理學 會計學
1 張青松 68 85 84 89 86
2 王宇翔 85 91 63 76 66
3 田思雨 74 74 61 80 69
4 徐麗娜 88 100 49 NA 66
5 趙瑩瑩 63 82 89 91 85
6 王智強 78 84 51 60 60
7 宋麗媛 90 78 59 72 66
8 袁芳芳 80 100 53 73 70
9 張建國 58 NA 79 91 85
10 張志傑 63 70 91 85 82
> rename(student_score_data,c(統計學="統計"))
學生姓名 統計 數學 營銷學 管理學 會計學
1 張青松 68 85 84 89 86
2 王宇翔 85 91 63 76 66
3 田思雨 74 74 61 80 69
4 徐麗娜 88 100 49 NA 66
5 趙瑩瑩 63 82 89 91 85
6 王智強 78 84 51 60 60
7 宋麗媛 90 78 59 72 66
8 袁芳芳 80 100 53 73 70
9 張建國 58 NA 79 91 85
10 張志傑 63 70 91 85 82
# 數據保存
> write.csv(student_score_data,file = "C:/Users/wpguoc/Desktop/student_score_data.csv")
> save(student_score_data,file = "C:/Users/wpguoc/Desktop/student_score_data.RData")
# 數據加載
> load("C:/Users/Desktop/student_score_data.RData")
> student_score_data
學生姓名 統計學 數學 營銷學 管理學 會計學
1 張青松 68 85 84 89 86
2 王宇翔 85 91 63 76 66
3 田思雨 74 74 61 80 69
4 徐麗娜 88 100 49 NA 66
5 趙瑩瑩 63 82 89 91 85
6 王智強 78 84 51 60 60
7 宋麗媛 90 78 59 72 66
8 袁芳芳 80 100 53 73 70
9 張建國 58 NA 79 91 85
10 張志傑 63 70 91 85 82
轉載請注明出處,謝謝!
