胡正紅,張朝霞
(太原師范學(xué)院 計(jì)算機(jī)系 ,山西 晉中 030619)
混合數(shù)據(jù)的分離與分類統(tǒng)計(jì)
胡正紅,張朝霞
(太原師范學(xué)院 計(jì)算機(jī)系 ,山西 晉中 030619)
高考志愿填報(bào)是每一個(gè)高中生邁入理想大學(xué)關(guān)鍵的一步.如何以歷年來各高校招生和錄取的情況選擇一個(gè)合適而理想的大學(xué)是每一個(gè)考生家長面臨的難題.實(shí)際中,我們普通家長所能獲取的各高校招生和錄取的原始數(shù)據(jù)組成極為復(fù)雜,由文本、數(shù)字、其他字符組成混合數(shù)據(jù),且每條數(shù)據(jù)長度不等,難以進(jìn)行統(tǒng)計(jì)分析,另外,原始數(shù)據(jù)中只有最低分和最高分,不能滿足統(tǒng)計(jì)需要.因此,文章首先概括了高考錄取公示信息的數(shù)據(jù)特點(diǎn),并進(jìn)一步通過VFP程序設(shè)計(jì)對(duì)混雜的原始數(shù)據(jù)進(jìn)行分離,提取出規(guī)范有效的數(shù)據(jù),設(shè)置屬性,根據(jù)統(tǒng)計(jì)要求補(bǔ)充屬性等,形成新的數(shù)據(jù)樣本,最后通過編程統(tǒng)計(jì)出各院校平均分、最高分,為下年高考志愿填報(bào)提供幫助.
數(shù)據(jù)結(jié)構(gòu); VFP;數(shù)據(jù)分離
每年高考結(jié)束后,評(píng)閱完畢,考生查詢成績后就可志愿填報(bào),雖然學(xué)生成績已經(jīng)知曉,但是各院校錄取分?jǐn)?shù)未知,需要考生查詢往年歷史數(shù)據(jù)進(jìn)行對(duì)比參考,招生部門提供的數(shù)據(jù)只有各院校錄取的最低分和最高分,沒有平均分,事實(shí)上反映院校錄取的整體水平的正是各院校錄取的平均分,且每個(gè)考生在填報(bào)志愿時(shí)不僅要選擇學(xué)校,更多的還要選擇專業(yè),選擇專業(yè)時(shí)需要平均分?jǐn)?shù)據(jù),來幫助決策志愿的填報(bào).
為此,我們從專業(yè)考試網(wǎng)絡(luò)獲取了2015年院校錄取公示名單,希望統(tǒng)計(jì)出不同批次院校錄取最高分、最低分、平均分.實(shí)際中,我們獲取了20個(gè)數(shù)據(jù)文件,每個(gè)數(shù)據(jù)文件包括近1 000條若干院校的錄取信息,同一個(gè)院校中有文科專業(yè)錄取信息、理科錄取信息以及文體特招信息,每一條錄取信息數(shù)據(jù)單元由文本、數(shù)字、其他字符組成混合數(shù)據(jù),每條數(shù)據(jù)長度不等,如圖1所示.
圖1 錄取信息數(shù)據(jù)單元
面對(duì)如此紛雜的原始數(shù)據(jù),我們難以看出各高校在山西省的招生和錄取情況,為了達(dá)到上面這個(gè)目的,我們有必要對(duì)原始數(shù)據(jù)進(jìn)行重新分離、補(bǔ)充和整理,形成易于統(tǒng)計(jì)的數(shù)據(jù)結(jié)構(gòu).
基于原始數(shù)據(jù)的復(fù)雜繁多,我們選用VFP程序設(shè)計(jì)軟件對(duì)數(shù)據(jù)進(jìn)行重新的整理統(tǒng)計(jì),形成我們填報(bào)志愿需要參考的新格式的數(shù)據(jù)結(jié)構(gòu).具體步驟如下:
第一,去除亂碼.要想對(duì)這些數(shù)據(jù)樣本按院校、科類進(jìn)行統(tǒng)計(jì)分析,首先要對(duì)數(shù)據(jù)標(biāo)準(zhǔn)化,設(shè)置屬性,將數(shù)據(jù)結(jié)構(gòu)化.
通過分析可以看出,每條數(shù)據(jù)由14位準(zhǔn)考證號(hào)、2~3個(gè)姓名符串、長度不等的院校名稱字符串、3位整數(shù)12位小數(shù)的考試成績數(shù)值型數(shù)據(jù)組成,中間夾雜有長度不等的“??”符號(hào)串.VFP數(shù)據(jù)庫沒有專門的分離函數(shù)分離數(shù)據(jù),我們把導(dǎo)入的數(shù)據(jù)定義字段為“名單數(shù)據(jù)”,對(duì)其進(jìn)行字符串替換處理,放入“新數(shù)據(jù)”字段, 語句為“replace all with chrtranc(名單數(shù)據(jù),"?","")”,把原數(shù)據(jù)中的亂碼轉(zhuǎn)換為空格,如圖2所示.
第二,設(shè)置數(shù)據(jù)結(jié)構(gòu).計(jì)算各院校的不同科類錄取平均分,數(shù)據(jù)統(tǒng)計(jì)需要的決策屬性有學(xué)校、成績、科類,我們對(duì)數(shù)據(jù)可以按此要求設(shè)置屬性.修改定義數(shù)據(jù)結(jié)構(gòu)如圖3所示.
第三,提取數(shù)據(jù).數(shù)據(jù)標(biāo)準(zhǔn)化后,對(duì)數(shù)據(jù)的分離提取,我們可以使用取子串、替換字符串、去除空格函數(shù)處理,寫入相應(yīng)的字段,具體流程如下:
1)科類字段提?。簭淖笕?4位子串——獲取準(zhǔn)考證號(hào)——準(zhǔn)考證號(hào)獲取子串——科類編碼—判斷科類—寫入科類字段;2)姓名字段提??;去除左邊14位子串——從左獲取考生姓名子串——寫入姓名字段;3)學(xué)校字段提取:去除姓名子串——從左獲取院校名稱子串—寫入學(xué)校字段; 4)成績字段提?。喝コ盒W哟@取成績——寫入成績字段.
主要實(shí)現(xiàn)代碼如下:
sele 1
use 2015公示名單(a list of data)4.dbf
repl all 新數(shù)據(jù)(new data)with chrtranc(名單數(shù)據(jù),"?","")(list data)
go top
public x,y,z
do while .not.eof()
mychar=新數(shù)據(jù)(new data)
trim(mychar)
hao=left(mychar,14)
leihao=substrc(hao,9,2)
if val(leihao)=11 or val(leihao)=13 then
repl 科類 with "文科"
endif
if val(leihao)=15 or val(leihao)=17 then
repl 科類 with "理工"
endif
secondchar=stuff(mychar,1,15,"")
trim(secondchar)
y=at("",secondchar)
xm=left(secondchar,y-1)
thirdchar=stuff(secondchar,1,y,"")
trim(thirdchar)
z=at("",thirdchar)
school=left(thirdchar,z-1)
forthchar=stuff(thirdchar,1,z,"")
trim(forthchar)
fen=left(forthchar,3)
repl 姓名 with xm
repl 學(xué)校 with school
repl 分?jǐn)?shù) with val(fen)
skip
enddo
程序運(yùn)行后,混合結(jié)構(gòu)的錄取信息數(shù)據(jù)單元分離,成為滿足統(tǒng)計(jì)需要的數(shù)據(jù)結(jié)構(gòu),如圖4所示.
圖4 校準(zhǔn)的院校錄取名單數(shù)據(jù)結(jié)構(gòu)
我們獲取到的各院校錄取情況的原始數(shù)據(jù),只有最低分,為滿足統(tǒng)計(jì)需求,我們?cè)黾恿俗罡叻?、平均分兩個(gè)屬性(見圖5).原始數(shù)據(jù)單元分離后,我們得到了有學(xué)校、科類、分?jǐn)?shù)屬性的數(shù)據(jù)樣本(見圖4),可以統(tǒng)計(jì)出各院校的平均分、最高分,填入各院校對(duì)應(yīng)的記錄.
圖5 各院校錄取數(shù)據(jù)
如圖4所示,同所院校同科類公示信息是按分?jǐn)?shù)從高到低排列的,我們按院校名稱、科類搜索到的第一條記錄就是最高分序排列,利用VFP中的average函數(shù)計(jì)算出院校不同科類的平均分.流程如下:
工作區(qū)1中打開公示名單表,工作區(qū)2中打開院校投檔線表,定位指針到文件頭.
循環(huán)
如果指針沒有結(jié)束
記錄院校投檔表的學(xué)校名稱
在工作區(qū)1搜索公示名單表記錄
找到的第一條記錄分?jǐn)?shù)為最高分
計(jì)算平均分
工作區(qū)2中更新數(shù)據(jù)
循環(huán)結(jié)束
具體程序如下:
Specific process is as follows
clear
public sch_fen,max_fen
sele 1
use 2015公示名單6.dbf
sele 2
use 2015一本A理new.dbf
go top
do while .not.eof()
sele 2
school=trim(院校名稱)
sele 1
go 1
max_fen=分?jǐn)?shù)
min_fen=分?jǐn)?shù)
locate for trim(學(xué)校)=school .and. 科類="理工"
if found() then
max_fen=分?jǐn)?shù)
average 分?jǐn)?shù) to sch_fen for 學(xué)校=school .and. 科類="理工" sele 2
repl 最高分 with max_fen
repl 最低分 with min_fen
endif
sele 2
skip
enddo
close all
程序執(zhí)行后,結(jié)合原始數(shù)據(jù),我們就得到了各院校的錄取最低分、最高分、平均分,部分院校錄取分?jǐn)?shù)統(tǒng)計(jì)如圖6所示.
圖6 部分院校錄取分?jǐn)?shù)統(tǒng)計(jì)
本文詳細(xì)說明了混合數(shù)據(jù)分離、提取的過程,數(shù)據(jù)提取出來以后,下一步我們可以將2015年院校錄取數(shù)據(jù)與以往的院校錄取數(shù)據(jù)建立連接,成為既有時(shí)間序列數(shù)據(jù)又有橫截面數(shù)據(jù)的縱向數(shù)據(jù),我們將這些縱向數(shù)據(jù)進(jìn)行分析,可以預(yù)測2016年的高考錄取情況,希望以后可以為高考考生志愿的填報(bào)提供合理的依據(jù).
[1] 楊懷珠.山西省高考志愿填報(bào)方法與技巧.太原:山西出版?zhèn)髅郊瘓F(tuán),2015
[2] 吳 波.Visual FoxPro 6.0程序設(shè)計(jì).北京:人民郵電出版社,2015
[3] 許九奎.高考報(bào)考專業(yè)專業(yè)指南.北京:中國原子能出版社,2015
Separation and Classification about Mixed Data
HU Zhenghong, ZHANG Zhaoxia
(Department of Computer Science and Technology, Taiyuan Normal University, Jinzhong 030619, China)
The college entrance examination is a key step for every high school student to enter the ideal university. However, how to choose a suitable and ideal university on the basis of university enrollment and admission data over the past years, which is the problem facing every candidate parents. In fact, the original data that our common parents can obtain from the college admissions and enrollment, the composition of which is very complex. It is the mixed data consists of text, numbers, and other characters, and each data with unequal length, thus, it is difficult to carry out statistical analysis. Moreover, the original data arranged in only the lowest points and most high that cannot meet the needs of statistics. So, based on this,firstly,our paper generalized the data characteristics of public college admission information. Secondly, we designed the VFP program to separate the raw data, extracted a standardized and effective data, set the attribute, and added attributes according to the statistical requirements, etc. And then the new data sample is formed. Lastly, we programmed the statistics of each college average score, the highest score, in order to provide help for the next year’s college entrance examination.
data structure;VFP; data department
2015-10-08 基金項(xiàng)目:國家自然科學(xué)基金項(xiàng)目(61273294);山西省基礎(chǔ)條件平臺(tái)項(xiàng)目(2014091004-0104).
胡正紅(1969-),女,碩士,太原師范學(xué)院計(jì)算機(jī)系副教授,主要從事計(jì)算機(jī)應(yīng)用、機(jī)器學(xué)習(xí)研究.
1672-2027(2015)04-0026-05
TP311.1
A