一个R语言使用函数处理的基本的案例
2016-02-19 10:30
267 查看
要求:对这个表的处理
options(digits=2)
Student <- c("John Davis", "Angela Williams",
"Bullwinkle Moose", "David Jones",
"Janice Markhammer", "Cheryl Cushing",
"Reuven Ytzrhak", "Greg Knox", "Joel England",
"Mary Rayburn")
Math <- c(502, 600, 412, 358, 495, 512, 410, 625, 573, 522)
Science <- c(95, 99, 80, 82, 75, 85, 80, 95, 89, 86)
English <- c(25, 22, 18, 15, 20, 28, 15, 30, 27, 18)
roster <- data.frame(Student, Math, Science, English,
stringsAsFactors=FALSE)
z <- scale(roster[,2:4])
score <- apply(z, 1, mean)
roster <- cbind(roster, score)
y <- quantile(score, c(.8,.6,.4,.2))
roster$grade[score >= y[1]] <- "A"
roster$grade[score < y[1] & score >= y[2]] <- "B"
roster$grade[score < y[2] & score >= y[3]] <- "C"
roster$grade[score < y[3] & score >= y[4]] <- "D"
roster$grade[score < y[4]] <- "F"
name <- strsplit((roster$Student), " ")
lastname <- sapply(name, "[", 2)
firstname <- sapply(name, "[", 1)
roster <- cbind(firstname,lastname, roster[,-1])
roster <- roster[order(lastname,firstname),]
roster
firstname lastname Math Science English score grade
6 Cheryl Cushing 512 85 28 0.35 C
1 John Davis 502 95 25 0.56 B
9 Joel England 573 89 27 0.70 B
4 David Jones 358 82 15 -1.16 F
8 Greg Knox 625 95 30 1.34 A
5 Janice Markhammer 495 75 20 -0.63 D
3 Bullwinkle Moose 412 80 18 -0.86 D
10 Mary Rayburn 522 86 18 -0.18 C
2 Angela Williams 600 99 22 0.92 A
7 Reuven Ytzrhak 410 80 15 -1.05 F
相关文章推荐
- android之wifi开发
- CentOS环境变量设置
- scrapy爬虫之Image Pipeline
- rotateAnimation 动画效果(转载)
- Android中自动连接到指定SSID的Wi-Fi
- template和templateUrl区别与联系
- IP工具类——IpAddress.java
- 【转】 制作Android Demo GIF:程序演示效果GIF图录制
- Delphi中获取文件大小
- mysql 查看 删除 日志操作总结(包括单独和主从mysql)
- 基于JavaScript实现弹出框效果
- listview实现上拉加载
- java 文件上传和下载处理
- STL 中的容器们
- PHP编译过程中常见错误信息的解决方法
- Linux下which、whereis、locate、find 命令的区别
- PHP职业规划
- Android wifi简要分析
- jQuery ajax请求方法汇总
- Android系统下载管理DownloadManager功能介绍及使用示例