第三节 数据库管理和操作
在数据库中,应用最广的是二维关系型数据库。关系型数据库是把各种联系方式都统一描述成一些由若干个行和若干个列组成的二维表格。每个表格称为一个关系,并有一个关系名识别。数据库的建立和管理是统计分析软件的基础,熟练地掌握数据库的操作是进行统计分析的前提,在对实际资料进行分析时,数据库操作技巧尤显重要。CHISS软件的数据库为二维关系型数据库。
进入CHISS软件后,屏幕上出现的主窗口即为数据窗口。新建的数据表默认格式为DBF数据库,存放目录为CHISS软件目录下的Data子目录,可用”数据表另存”命令存为其他格式。扩展名为DBF时为dBase表,扩展名为DB时为Paradox表。
一、二维关系数据库建立
建立二维关系数据库时,把各种指标变量和数据描述成一个二维表,在水平方向的每一行为一个记录,在垂直方向的每一列代表对象的某个内容相同的属性(包括列名、类型和列长度等)。实际问题中,通常一行代表一个观测,一列代表一个变量。以后常称列为变量。
例3-1
某校12名学生的成绩数据,试用CHISS软件建立数据库,如表3-1所示。
表3-1 12名学生的成绩数据资料
学号、班级和统计、英语成绩是由数字组成,称为数值型列,统计、英语成绩列宽度为3位。性别由汉字男、女组成,称为字符型列,宽2位。在CHISS软件建立数据库时,必须先建立数据库结构。库结构是由变量列名、变量列个数、变量类型和长度组成。变量名是由若干个字符、字母、数字和汉字组成,长度不超过30个字符。缺省时以X开头。大小字为相同变量。类型有整数型、浮点型、数值型、字符型、日期型、逻辑型和自动增长型。缺省为浮点型,长度为自动长度,显示为0。
1.CHISS软件建立
点击“数据”→“文件”→“新建数据库表”。列数为“5”→应用于输入列名和类型,用光标双击类型可进行选择:
列名 类型
学号 F 浮点型
班级 F
性别 S 字符型
统计 F
英语 F
→“确认”。
输入数据,用上下左右箭头移动光标,产生数据库结构同上表一致,略。
2.SAS软件建立数据库
SAS软件中一般的变量命名规则为下划线与英文字母开头,由英文字母、数字、下划线组成,且总长度不超过32个英文字符长度。如果使用中文变量名,需要设置系统选项。
3.Stata软件建立数据库
打开Stata 15.0,在command窗口命令依次输入下列代码(*为注释内容):
4.SPSS软件建立数据库
首先,打开数据编辑器窗口,依次单击“文件”→“新建”→“数据”如图3-2所示。
图3-1 Stata软件建立数据库
图3-2 SPSS软件数据编辑器窗口
第二,在变量视图窗口进行变量的编辑,第一个变量为“学号”:名称为“学号”,数据类型为“数值型(N)”,宽度为“6”,小数位数为“0”,值“无”,缺失“无”;第二个变量为“班级”:名称为“班级”,数据类型为“数值型(N)”,宽度为“1”,小数位数为“0”,值“无”,缺失“无”;第三个变量为“性别”:名称为“性别”,数据类型为“字符串”,宽度为“4”,小数位数为“0”,值“无”,缺失“无”;第四个变量为“统计”:名称为“统计”,数据类型为“数值型(N)”,宽度为“3”,小数位数为“0”,值“无”,缺失“无”;第五个变量为“英语”:数据类型为“数值型(N)”,宽度为“2”,小数位数为“0”,变量值“无”,缺失“无”,如图3-3所示。
图3-3 数据库建立(变量视图)
第三,在数据视图窗口进行数据的编辑,将每一个学生的每一个变量的具体数值填入,如图3-4所示。
图3-4 数据库建立(数据视图)
二、数据库管理
(一)数据库保存
1.CHISS软件进行数据库保存
建立完数据库后,应及时保存数据,以免丢失。步骤如下:点击“数据”→“文件”→“数据库另存”。给出文件夹和数据库文件名确定即保存。CHISS软件的数据库名是由若干个字符、字母、数字和汉字组成,要求同WINDOWS对文件名的要求一样,长度不超过30个字符。
2.SAS软件进行数据库保存
建立永久或临时逻辑库后,在其中输入数据,run之后就保存了数据集,即例3-1中已将数据保存在逻辑库data中的数据集grade中。
3.Stata软件进行数据库保存
*保存数据库至E盘,文件名为data1,默认为dta格式,替代之前数据
save E:\data1,replace
*保存数据库至E盘,文件名为data1,设置为txt格式
outsheet using E:\data1.txt
4.SPSS软件进行数据库保存
数据库保存,单击“文件”→“保存”,弹出“将数据另存为”对话框,如图3-5所示,选择所要保存的文件指定文件名和保存类型,点击“保存”。
图3-5 将数据另存为对话框
(二)打开数据库
1.调用CHISS软件读取数据
对于已建立好的数据库,直接调用CHISS软件可读取dBase、Excel、Oracle、Access、Paradox、Sybase等格式的数据集,并且可以直接读取文本数据文件。
(1)打开CHISS数据库
方法一:点击“数据”→“文件”→打开“数据库表”,给出数据库表所在的文件夹和数据库文件名确定即打开。
方法二:用光标点击“数据模块”中的“文件夹”,双击数据库名即可打开。
(2)打开Excel电子表中数据:
点击“数据”→“文件”→“读Excel数据”,给出Excel数据所在的文件夹和文件名确定即打开。
(3)读文本数据:
点击“数据”→“文件”→“读文本格式的数据”,给出文本数据所在的文件夹和文件名确定即打开。
2.SAS软件读取数据集
(1)打开SAS数据集
(2)打开Excel数据
(3)读文本数据
3.Stata软件读取数据集
*打开E盘中名称为data1的Dta格式文件,清除此前数据
use E:\data1,clear
*打开E盘中名称为data1的xlt文件
import excel using E:\data1.xlsx
*打开E盘中名称为data1的txt文件
import delimited E:\data1.txt
4.SPSS软件读取数据集
(1)打开SPSS数据文件:
单击“文件”→“打开”→“数据”命令,弹出“打开数据”对话框,如图3-6所示。选择需要打开的数据文件名确定即打开。
图3-6 打开数据对话框
(2)打开Excel中的数据:
单击“文件”→“打开”→“数据”命令,弹出如图3-6所示对话框,在文本类型中选择Excel文件,如图3-7所示。将相对应的Excel数据文件单击打开,弹出“读取Excel文件”对话框,如图3-8所示,给出Excel数据所在的文件夹和文件名确定即打开。
图3-7 文件类型选择
(3)读文本数据:
单击“文件”→“打开”→“数据”命令,弹出如图3-6所示的对话框,在文本类型中选择“文本格式”,将需要打开的文本数据打开。
图3-8 读取Excel文件对话框
(三)关闭数据库
1.CHISS软件关闭数据库
方法一:点击“数据”→“文件”→“关闭数据库”。
方法二:打开一个新的数据库,即可关闭一个旧的数据库。
2.SAS软件关闭数据库
SAS软件中预览数据集后,可直接点击右上角的“ × ”关闭数据集。
3.Stata软件关闭数据库
clear。
4.SPSS软件关闭数据库
点击“文件”→“关闭”,即可关闭文件。
(四)数据库更新和维护
1.CHISS软件的数据库更新和维护
(1)增加新行:
在实际问题中,我们常要增加新行。只须按键盘上的向下移动键(↓)即可。CHISS软件每次只增加一行,录入数据后再按向下移动键。注意用上下左右箭头移动光标,输入最后一个数据时,光标向上移一行,确认数据。
(2)删除行:
在实际问题中,我们有时要删除一行无用的数据。可将光标移到所要删除的行。
方法:点击“数据”→“行编辑”→“删除所选行”
(3)增加空白新列:
在实际问题中,我们有时要增加变量。例如,在学生成绩资料中,我们要增加一列求统计学和英语成绩的总分。
方法:点击“数据”→“列编辑”→“附加空白列”
(4)计算产生新列:
在实际问题中,我们常要对数据进行处理,产生新的变量。例如,在学生成绩资料中,我们要直接求统计学和英语成绩的总分。
方法:点击“数据”→“列编辑”→“计算产生新列”,出现对话窗口。
在表达式中输入计算公式:总分 = [统计学] + [英语]→“完成”
则产生每个同学的统计学和英语成绩的总分。
注意:如果新变量已存在则用新的值替代原有的值;在使用变量名时要用中括号将变量名括起来,用函数时则用小括号。CHISS软件中可使用的函数见后章节。
(5)删除列:
在实际问题中,我们有时要删除变量。光标移到所要删除的列。
方法:点击“数据”→“列编辑”→“删除当前列”
(6)列变换:
CHISS软件可以将多列数据变为一列,也可将一列数据变为多列。
方法:点击“数据”→“列编辑”→“多列拉一列”→“确认”。
(7)行与列互换:
CHISS可将行变为列,也可将列变为行。
方法:“点击数据”→“库管理”→“多数据置换”→“确认”。
2.SAS软件的数据库更新和维护
(1)增加新行
(2)删除行
(3)增加空白新列
(4)计算产生新列
(5)删除列
(6)列变换
多列变一列:
一列变多列:
(7)行列互换
3.Stata软件的数据库更新和维护
*在原有数据集中增加第13行观测
set obs 13
*删除新增的第13行
drop in 13
*增加空白新列
gen var = .
*计算statistics和english总分,产生新列sum
gen sum = statistics + english
*删除列sum
drop sum
*将多列数据变为一列,statistics和english合并成一列
rename statistics grade1
rename english grade2
reshape long grade,i(id)j(subject)
*将一列数据变为多列
reshape wide grade,i(id)j(subject)
*行列互换,同时保留变量名
xpose,clear varname
4.SPSS数据库的更新和维护
(1)增加新行:
在数据视图窗口,将光标移到需要增加的行上,点击“选中”,右键选择“插入个案”。
(2)删除行:
在数据视图窗口,将光标移到需要删除的行上,点击“选中”,右键选择“清除”。
(3)增加空白新列:
在变量视图窗口,增加一个新的变量,按需要设置变量的名称、类型、宽度、小数位数、标签、值、缺失等。
(4)计算产生新列:
打开“转换”→“计算变量”,对话变量对话框中,目标变量输入“总分”,数字表达式一栏中,依次选择“统计”“ + ”“英语”,如图3-9所示。
图3-9 计算变量对话框
点击“确定”,则产生每个同学的统计学和英语成绩的总分。
(5)删除列:
光标移到所要删除的列,右键点击“清除”。
(6)列变换
方法一:点击“数据”→“重构”,弹出“重构数据向导”对话框如图3-10(a),按照需求选择相应的选项,选择第1种功能,选择“将选定变量重构为个案”,单击“下一步”后出现向导的第2个界面,如图3-10(b)所示,选择“一个”,点击“下一步”,弹出“变量选择”界面,如图3-10(c)所示,个案组标识中选择“使用选定变量”,将“学号”填入变量中,在要转换的对话框中将默认的目标变量改为“成绩”,将“统计”和“英语”填入,点击“下一步”,之后向导界面按自己要求选择,选择“完成”。
图3-10 数据重组向导(一列变多列)的三个界面
方法二:点击“数据”→“重构”,弹出“重构数据向导”对话框如图3-11(a),按照需求选择相应的选项,例如选择第2种功能,选择“将选定个案重构为变量”,单击“下一步”后出现向导的第2个界面,如图3-11(b)所示,将“学号变量”填入“标识变量”中,将“索引1”填入“索引变量”中,点击“下一步”,向导会进入第3个界面,点击“完成”。
图3-11 数据重组向导(多列变一列)的两个界面
(7)行与列互换:
SPSS可将行变为列,也可将列变为行。点击“数据”→“转置”,弹出“转置”对话框,选择需要转置的变量,如图3-12所示。
图3-12 转置对话框
点击“确定”,转置前后如图3-13(a)(b)所示。
图3-13 数据转置前后的数据文件示意
三、另两种数据表
(一)分组排列数据表
可以将每一组数据产生一列排放,显示出的数据表同统计教材一样,并进行分析。
例3-2
某班学生本科与硕士时的统计学考试成绩,结果如表3-2所示。
表3-2 统计学考试成绩表
注:建立数据表时,第一列为学号,第二为本科统计成绩的数据,第三列为硕士统计成绩的数据。
1.SAS软件建立数据表
2.Stata软件建立数据表
*输入变量名和观测值
input id under graduate
1 95 90
2 85 86
3 80 78
4 75 70
5 60 65
end
list
*输出表格至word,如图3-14
asdoc list,replace
图3-14 Stata软件中建立数据表
3.SPSS软件建立数据表
在变量视图窗口进行变量的编辑,第1个变量名称为“学号”,类型为“数字”,小数位数为“0”;第2个变量名称为“本科统计成绩”,类型为“数字”,小数位数为“0”;第3个变量名称为“硕士统计成绩”,类型为“数字”,小数位数为“0”;在数据变量窗口依次输入每一个变量的具体数字。
(二)统计量数据表
可以将经过统计整理后产生的统计量建立数据库,并进行进一步分析。
例3-3
今采用某药治疗肺炎病患者100例,并选取另一药物作为对照,治疗肺炎病患者40例,数据如表3-3所示。
表3-3 治疗肺炎疗效数据
建立数据表时可将一列为有效的数据,另一列为无效的数据。
1.SAS中建立数据库,并进行进一步分析
图3-15 SAS软件中建立肺炎病疗效数据的数据库
卡方检验结果如图3-16:
图3-16 SAS软件中肺炎病疗效数据的卡方检验结果
2.Stata中建立数据库,并进行进一步分析
*输入变量名和观测
input group treatment count
1 1 60
1 0 40
2 1 30
2 0 10
end
*输出列联表,如图3-17
tab group treatment[fweight = count]
3.SPSS中建立数据库,并进行进一步分析
在变量视图窗口进行变量的编辑,第1个变量名称为“组别”,类型为“字符串”,宽度为“12”;第2个变量名称为“效果”,类型为“字符串”,宽度为“8”;第3个变量名称为“频数”,类型为“数字”,小数位数为“0”;在数据变量窗口依次输入每一个变量的具体内容,如图3-18所示。
点击“数据”→“个案加权”,弹出“加权个案”对话框,如图3-19所示,选择“加权个案”,放入本次需要加权的变量“频数”。
图3-17 Stata软件中肺炎病疗效数据的卡方检验结果
图3-18 数据视图窗口
图3-19 个案加权对话框