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
转载请注明出处,谢谢!