对数据的处理现在普遍就是两种方案,python 或者 R。
一组学生参加了数学 科学和英语的考试。考试完成之后,需要給学生确定一个成绩衡量指标。会把综合成绩的前20%评定为A,接着是B C D F。
可以看到数据处理的一个障碍,三科成绩无法比较,或者说比较没有意义。。
:) 当然有人认为可以这么处理,比如知道数学的总分是700,将成绩全部换为以100分为计量单位的。。
当然英语也是,,计总分为50分,换成对应100的来处理。。。
也许吧,可以试试 :)
在这我们使用R来进行处理。
- 根据原始的学生花名册将数据采集进去,自然是选择数据框的格式。
1 |
|
we get
1 |
|
这里有两个细节没有注意。。
一个是刚好十个学生;另外一个是貌似student单词貌似拼写错了。。
- 由于三科考试的分值不同,如何让它们变得可以进行比较。一种方式是将数据进行标准化,使用单位标准差来表示,这个过程使用scale()函数来实现。
1 |
|
name <- strsplit((roster$stduent), “ “)
1 |
|
lastname <- sapply(name, “[“, 2)
firstname <- sapply(name, “[“, 1)
roster <- cbind(firstname, lastname, roster[, -1])
1 | 将原来的student化成两列,一列是姓,一列是名,同时也将student列舍弃掉。 |
roster <- roster[order(lastname, firstname),]
roster
1 |
|
roster
firstname lastname Math Science English score grade
6 Cherry 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 Bully Moose 412 80 18 -0.86 D
10 Mary Rayburn 522 86 18 -0.18 C
2 Angela Willams 600 99 22 0.92 A
7 Reuven Ytzrhak 410 80 15 -1.05 F
```
Done!!!!!!