《SAS编程技术教程》PDF下载

  • 购买积分:16 如何计算积分?
  • 作  者:朱世武编著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2007
  • ISBN:9787302159490
  • 页数:530 页
图书介绍:本书介绍SAS编程技术。

第1章 SAS软件入门 1

1.1 SAS软件介绍 1

1.1.1 SAS功能模块 1

1.1.2 SAS模块功能分类 4

1.1.3 SAS系统特点 4

1.1.4 SAS技术水平层次分类 4

1.1.5 本章目的 5

1.2 SAS安装与启动 5

1.2.1 SAS安装 5

1.2.2 SAS启动 6

1.2.3 SAS运行方式 6

1.3 SAS工作界面 6

1.3.1 菜单栏 6

1.3.2 工具栏 7

1.3.3 命令行 8

1.3.4 功能窗口 8

1.4 SAS窗口操作 12

1.4.1 窗口切换 12

1.4.2 视图停放 12

1.4.3 文件浏览及操作 13

1.4.4 程序编辑窗口操作 15

1.4.5 “功能键”窗口 15

1.4.6 “参数选择”窗口 15

1.4.7 数据集导入和导出 16

1.5 SAS帮助文档 21

1.5.1 打开SAS帮助文档 21

1.5.2 使用SAS帮助文档 22

习题 24

第2章 SAS编程基础 26

2.1 SAS语言组件 26

2.1.1 SAS文件 26

2.1.2 SAS外部文件 26

2.1.3 DBMS文件 27

2.1.4 SAS语言元素 27

2.1.5 SAS宏工具 27

2.2 SAS文件系统 27

2.2.1 逻辑库 27

2.2.2 数据集 29

2.2.3 数据文件 33

2.2.4 数据视图 34

2.2.5 存储编译的DATA步程序 36

2.2.6 其他SAS文件 36

2.3 SAS语言元素 37

2.3.1 数据集选项 38

2.3.2 输入和输出格式 38

2.3.3 函数和CALL子程序 39

2.3.4 语句 39

2.3.5 SAS系统选项 40

2.4 表达式 41

2.4.1 SAS常数 41

2.4.2 SAS算符 42

2.5 SAS变量 45

2.5.1 变量类型 45

2.5.2 变量属性 46

2.5.3 变量列表及其缩写规则 46

2.5.4 创建变量 47

2.5.5 变量类型转换 48

2.5.6 自动变量 51

2.6 错误类型与处理 52

2.6.1 句法错 53

2.6.2 词义错 54

2.6.3 运行错 55

2.6.4 数据错 56

2.7 SAS输出 57

2.8 SAS程序 58

2.8.1 书写规则 58

2.8.2 数据步 58

2.8.3 过程步 59

2.9 SAS词段使用和命名规则 59

2.9.1 SAS名称及命名规则 59

2.9.2 其他SAS词段 60

习题 60

第3章 SAS函数与CALL子程序 62

3.1 SAS函数定义 62

3.1.1 函数定义 62

3.1.2 函数用法 62

3.2 SAS函数自变量与结果 63

3.2.1 函数自变量 63

3.2.2 函数结果 64

3.2.3 显示函数值的简单方法 65

3.3 SAS函数分类 65

3.4 日期时间函数 66

3.4.1 日期时间函数 66

3.4.2 应用举例 67

3.5 概率分布函数 70

3.5.1 标准正态分布 70

3.5.2 卡方分布 71

3.5.3 伽马分布 71

3.5.4 贝塔分布 71

3.5.5 F分布 71

3.5.6 t分布 72

3.5.7 二项分布 72

3.5.8 泊松分布 72

3.5.9 负二项分布 73

3.5.10 超几何分布 73

3.6 分位数函数 74

3.6.1 卡方分布分位数 74

3.6.2 贝塔分布分位数 74

3.6.3 F分布分位数 74

3.6.4 t分布分位数 74

3.6.5 正态分布分位数 75

3.6.6 伽马分布分位数 75

3.7 样本统计函数 75

3.7.1 均值 75

3.7.2 最大值 75

3.7.3 最小值 76

3.7.4 非缺失数据个数 76

3.7.5 缺失数据个数 76

3.7.6 求和 76

3.7.7 方差 76

3.7.8 标准差 76

3.7.9 标准误 77

3.7.10 变异系数 77

3.7.11 极差 77

3.7.12 校正平方和 77

3.7.13 未校正平方和 77

3.7.14 偏斜度 77

3.7.15 峰度 78

3.8 随机数函数 78

3.8.1 正态分布 78

3.8.2 均匀分布 79

3.8.3 二项分布 79

3.8.4 伽马分布 80

3.8.5 泊松分布 80

3.8.6 贝塔分布 81

3.8.7 指数分布 81

3.8.8 几何分布 82

3.8.9 极值分布 82

3.8.10 随机数函数自变量SEED 82

3.9 SAS CALL子程序 83

3.9.1 CALL子程序类型 83

3.9.2 随机数子程序 83

习题 85

第4章 访问外部数据文件 86

4.1 概述 86

4.1.1 访问两类外部文件 86

4.1.2 访问外部数据文件方法 87

4.2 通过IMPORT过程 88

4.2.1 句法与选项说明 88

4.2.2 应用举例 89

4.3 通过LIBNAME语句和库引擎 90

4.3.1 读入其他版本或分析软件数据集 90

4.3.2 读入流行数据库(DBMS) 90

4.4 通过ACCESS过程 91

4.4.1 创建访问描述器 91

4.4.2 创建数据视窗 93

4.4.3 由数据视窗创建数据集 94

4.5 通过ODBC 95

4.5.1 创建ODBC数据源 95

4.5.2 创建ODBC引擎逻辑库 95

4.6 创建SAS数据集方法总结 96

习题 97

第5章 数据步读入原始数据 98

5.1 原始数据分类 98

5.1.1 标准数据 98

5.1.2 非标准数据 98

5.1.3 数值数据 98

5.1.4 字符数据 99

5.2 原始数据呈现形式 100

5.3 使用INPUT语句读入原始数据 101

5.3.1 INPUT语句的5种输入方式 101

5.3.2 列方式输入 102

5.3.3 列表方式输入 103

5.3.4 格式化方式输入 106

5.3.5 命名方式输入 107

习题 109

第6章 数据步文件管理 110

6.1 DATA语句 110

6.1.1 语句格式 110

6.1.2 选项说明 111

6.1.3 特殊数据集名 112

6.2 CARDS与CARDS4语句 113

6.2.1 CARDS语句 113

6.2.2 CARDS4语句 113

6.3 PUT语句 114

6.3.1 语句格式 114

6.3.2 选项说明 115

6.3.3 应用举例 115

6.3.4 指针控制 116

6.3.5 列方式输出 117

6.3.6 列表方式输出 117

6.3.7 格式化输出 118

6.4 BY语句 119

6.4.1 语句格式 119

6.4.2 选项说明 119

6.4.3 BY语句概念 119

6.4.4 FIRST.变量和LAST.变量 119

6.5 SET语句 120

6.5.1 语句格式 120

6.5.2 选项说明 120

6.5.3 应用举例 121

6.6 MERGE语句 125

6.6.1 语句格式 125

6.6.2 选项说明 125

6.6.3 应用举例 126

6.7 UPDATE语句 127

6.7.1 语句格式 127

6.7.2 选项说明 127

6.7.3 MERGE语句和UPDATE语句的比较 128

6.7.4 应用举例 128

6.8 MODIFY语句 129

6.8.1 语句格式 129

6.8.2 选项说明 130

6.8.3 数据集访问方式 130

6.8.4 修改观测 131

6.8.5 与UPDATE等语句的比较 132

6.8.6 应用举例 132

6.9 FILE语句 135

6.9.1 语句格式 135

6.9.2 应用举例 137

6.10 INFILE语句 138

6.10.1 语句格式 138

6.10.2 应用举例 141

习题 141

第7章 数据步修改与选择观测 145

7.1 赋值语句 145

7.1.1 语句格式 145

7.1.2 结果变量类型 146

7.1.3 结果变量长度 146

7.2 累加语句 147

7.2.1 语句格式 147

7.2.2 应用举例 147

7.3 DELETE语句与LOSTCARD语句 148

7.3.1 DELETE语句 148

7.3.2 LOSTCARD语句 149

7.4 STOP语句与ABORT语句 151

7.4.1 STOP语句 151

7.4.2 ABORT语句 151

7.5 WHERE语句 154

7.5.1 语句格式 155

7.5.2 WHERE表达式特殊算符 155

7.5.3 应用举例 156

7.5.4 WHERE和子集IF语句比较 156

7.6 OUTPUT语句 157

7.6.1 语句格式 157

7.6.2 应用举例 157

7.7 REMOVE语句与REPLACE语句 159

7.7.1 REMOVE语句 159

7.7.2 REPLACE语句 160

7.8 MISSING语句 162

7.8.1 语句格式 162

7.8.2 应用举例 162

7.9 其他语句 163

7.9.1 LIST语句 163

7.9.2 PUT语句与LIST语句比较 163

7.9.3 CALL语句 164

7.9.4 CALL语句调用子程序 164

7.9.5 NULL语句 165

7.9.6 ERROR语句 165

习题 166

第8章 数据步循环与转移控制 168

8.1 DO语句 168

8.1.1 简单DO语句 169

8.1.2 循环DO语句 169

8.1.3 DO OVER语句 172

8.1.4 DO WHILE语句 172

8.1.5 DO UNTIL语句 173

8.2 END语句 173

8.2.1 语句格式 173

8.2.2 应用举例 173

8.3 SELECT语句 174

8.3.1 语句格式 174

8.3.2 应用举例 174

8.4 IF语句 175

8.4.1 IF-THEN与IF-THEN/ELSE语句 175

8.4.2 子集IF语句 176

8.5 GO TO语句与语句标号 176

8.5.1 GO TO语句 176

8.5.2 语句标号 178

8.6 LINK语句 178

8.6.1 语句格式 178

8.6.2 LINK语句与GOTO语句的差别 180

8.7 RETURN语句 180

8.7.1 语句格式 180

8.7.2 应用举例 181

8.8 CONTINUE语句与LEAVE语句 182

8.8.1 CONTINUE语句 182

8.8.2 LEAVE语句 182

8.8.3 LEAVE语句与CONTINUE语句的差别 183

习题 183

第9章 数据步变量与变量属性控制 185

9.1 ARRAY语句 185

9.1.1 显式下标数组语句 185

9.1.2 引用显式下标数组元素 188

9.1.3 隐含下标数组语句 190

9.1.4 引用隐含数组元素 190

9.2 INFORMAT语句与FORMAT语句 193

9.2.1 INFORMAT语句 193

9.2.2 FORMAT语句 194

9.3 LENGTH语句与LABEL语句 195

9.3.1 LENGTH语句 195

9.3.2 控制变量长度方法 196

9.3.3 数值变量长度控制 196

9.3.4 字符变量长度控制 197

9.3.5 LENGTH语句位置的重要性 198

9.3.6 LABEL语句 198

9.4 ATTRIB语句 199

9.4.1 语句格式 199

9.4.2 可以规定的变量属性 200

9.4.3 应用举例 200

9.5 DROP语句与KEEP语句 200

9.5.1 DROP语句 200

9.5.2 KEEP语句 201

9.5.3 DROP和KEEP语句使用规则 202

9.5.4 数据集选项DROP=和KEEP=使用规则 202

9.6 RENAME语句与RETAIN语句 203

9.6.1 RENAME语句 203

9.6.2 RETAIN语句 204

习题 206

第10章 过程步通用语句 208

10.1 PROC语句 208

10.1.1 语句格式 209

10.1.2 应用举例 209

10.2 VAR语句与MODLE语句 210

10.2.1 VAR语句 210

10.2.2 MODEL语句 210

10.3 ID语句与WHERE语句 211

10.3.1 ID语句 211

10.3.2 WHERE语句 211

10.4 CLASS语句与BY语句 212

10.4.1 CLASS语句 212

10.4.2 BY语句 213

10.5 OUTPUT语句与QUIT语句 214

10.5.1 OUTPUT语句 214

10.5.2 QUIT语句 214

10.6 FORMAT语句与ATTRIB语句 215

10.6.1 FORMAT语句 215

10.6.2 ATTRIB语句 215

10.7 LABEL语句 216

习题 216

第11章 全局通用语句 218

11.1 注释语句 218

11.1.1 语句格式 219

11.1.2 应用举例 219

11.2 DM语句与X语句 219

11.2.1 DM语句 219

11.2.2 X语句 221

11.3 TITLE语句与FOOTNOTE语句 221

11.3.1 TITLE语句 221

11.3.2 FOOTNOTE语句 222

11.4 RUN语句与ENDSAS语句 222

11.4.1 RUN语句 222

11.4.2 ENDSAS语句 223

11.5 LIBNAME语句 223

11.5.1 语句格式 223

11.5.2 选项说明 224

11.5.3 应用举例 224

11.6 FILENAME语句 225

11.6.1 语句格式 225

11.6.2 选项说明 225

11.6.3 应用举例 226

11.7 %INCLUDE语句 228

11.7.1 语句格式 228

11.7.2 选项说明 229

11.7.3 应用举例 229

11.8 %RUN语句与%LIST语句 230

11.8.1 %RUN语句 230

11.8.2 %LIST语句 230

11.9 MISSING语句 230

11.9.1 语句格式 231

11.9.2 应用举例 231

11.10 PAGE语句与SKIP语句 231

11.10.1 PAGE语句 231

11.10.2 SKIP语句 231

11.11 OPTIONS语句与GOPTIONS语句 232

11.11.1 OPTIONS语句 232

11.11.2 GOPTIONS语句 232

习题 233

第12章 输出控制 235

12.1 输出窗口与内容 235

12.2 日志输出控制 235

12.2.1 日志输出信息类型 235

12.2.2 日志输出信息控制 236

12.2.3 日志输出地点 236

12.2.4 定制日志格式 237

12.2.5 应用举例 237

12.3 运行结果输出控制 237

12.3.1 定制输出格式 238

12.3.2 运行结果输出地点 238

12.3.3 应用举例 239

12.4 图形存储利用与输出 239

12.4.1 图形存储 239

12.4.2 GREPLAY过程 240

12.4.3 输出其他格式图形文件 241

12.5 输出传送系统(ODS) 241

12.5.1 ODS功能 242

12.5.2 ODS对象与传送目标 242

12.5.3 ODS语句 243

12.5.4 传送目标控制 243

12.5.5 查询输出对象 247

12.5.6 选择输出对象 248

习题 249

第13章 变量输入输出格式 251

13.1 输入格式 251

13.1.1 输入格式形式 251

13.1.2 输入格式使用方法 252

13.1.3 输入格式类型 253

13.1.4 数值变量输入格式 254

13.1.5 字符变量输入格式 256

13.2 输出格式 258

13.2.1 输出格式形式 258

13.2.2 输出格式使用方法 258

13.2.3 输出格式类型 260

13.2.4 数值变量输出格式 260

13.2.5 字符变量输出格式 262

13.3 日期时间存储方式 263

13.3.1 SAS日期值存储方式 263

13.3.2 SAS日期时间值存储方式 264

13.4 日期时间输入格式 264

13.4.1 日期时间输入格式 264

13.4.2 应用举例 265

13.5 日期时间输出格式 265

13.5.1 日期时间输出格式 265

13.5.2 应用举例 270

13.6 缺失值处理 271

13.6.1 读入含缺失值的数据 271

13.6.2 系统产生的缺失值 272

习题 273

第14章 宏编程技术 274

14.1 概述 274

14.2 宏变量 274

14.2.1 定义宏变量 275

14.2.2 引用宏变量 275

14.2.3 如何隔开宏变量引用和文本 277

14.2.4 显示宏变量值 278

14.2.5 间接引用宏变量 278

14.2.6 自动宏变量 279

14.2.7 宏变量范围 280

14.2.8 全局宏变量 280

14.2.9 局部宏变量 281

14.3 宏 281

14.3.1 宏定义 281

14.3.2 调用一个宏 282

14.3.3 改变宏内宏变量的值 282

14.4 宏参数 283

14.4.1 创建宏参数 283

14.4.2 宏参数赋值 284

14.4.3 宏调用宏 284

14.4.4 条件表达式 285

14.4.5 生成重复文本 286

14.5 宏表达式 287

14.5.1 宏处理器如何处理算术表达式 287

14.5.2 宏处理器如何处理逻辑表达式 288

14.6 宏引用 288

14.6.1 使用%STR和%NRSTR 289

14.6.2 使用%BQUOTE和%NRBQUOTE 290

14.6.3 使用%SUPERQ 290

14.7 宏工具输入输出 291

14.8 数据步接口程序 291

14.8.1 数据步接口程序 292

14.8.2 应用举例 292

14.9 宏程序语句和宏函数 293

14.9.1 宏程序语句 293

14.9.2 宏函数 294

习题 295

第15章 数据管理 298

15.1 数据集排序 298

15.1.1 排序过程句法 298

15.1.2 PROC SORT语句 298

15.1.3 BY语句 299

15.1.4 应用举例 300

15.2 数据集转置 300

15.2.1 转置过程句法 300

15.2.2 PROC TRANSPOSE语句 301

15.2.3 VAR语句和ID语句 301

15.2.4 应用举例 302

15.3 改变输出地点 304

15.3.1 PRINTTO过程句法 305

15.3.2 选项说明 305

15.3.3 应用举例 305

15.4 添加观测 307

15.4.1 APPEND过程句法 307

15.4.2 选项说明 307

15.4.3 应用举例 308

15.5 数据库复制 308

15.5.1 COPY过程句法 308

15.5.2 PROC COPY语句选项 308

15.5.3 应用举例 309

习题 310

第16章 统计量计算 311

16.1 相关过程 311

16.1.1 相关过程句法 311

16.1.2 PROC CORR语句 312

16.1.3 其他语句 312

16.1.4 应用举例 313

16.2 频数过程 315

16.2.1 频数过程句法 315

16.2.2 PROC FREQ语句 315

16.2.3 TABLES语句 316

16.2.4 WEIGHT语句 318

16.2.5 BY语句 318

16.2.6 OUTPUT语句 318

16.2.7 应用举例 320

16.3 均值过程 323

16.3.1 均值过程句法 323

16.3.2 PROC MEANS语句 324

16.3.3 其他语句 325

16.3.4 应用举例 326

16.4 单变量过程 330

16.4.1 单变量过程句法 330

16.4.2 PROC UNIVARIATE语句 331

16.4.3 其他语句 332

16.4.4 应用举例 334

习题 337

第17章 数据展现 339

17.1 打印列表过程 339

17.1.1 打印列表过程句法 339

17.1.2 PROC PRINT语句 340

17.1.3 应用举例 342

17.2 制表过程 345

17.2.1 制表过程句法 345

17.2.2 TABLE语句 346

17.2.3 应用举例 346

17.3 作图过程 352

17.3.1 作图过程句法 352

17.3.2 PLOT语句 353

17.3.3 SYMBOL语句 353

17.3.4 AXIS语句 353

17.3.5 应用举例 353

17.4 图表过程 360

17.4.1 图表过程句法 361

17.4.2 分类变量及类别 361

17.4.3 选择分析变量和统计量 362

17.4.4 应用举例 362

习题 370

第18章 IML编程技术 372

18.1 概述 372

18.1.1 SAS/IML软件特点 372

18.1.2 一个简单IML交互程序 373

18.2 理解IML语言 373

18.2.1 定义矩阵 373

18.2.2 矩阵名字与标识 373

18.2.3 由矩阵标识创建矩阵 374

18.2.4 语句类型 375

18.3 线性回归IML模块 379

18.3.1 解方程组 379

18.3.2 线性回归IML模块程序 379

18.3.3 回归结果作图 381

18.3.4 回归分析练习 381

18.4 矩阵操作 382

18.4.1 输入数据创建矩阵标识 382

18.4.2 使用赋值语句创建矩阵 383

18.4.3 使用矩阵表达式 384

18.4.4 利用行列标展现矩阵 388

18.4.5 缺失值运算举例 389

18.5 IML编程语句 389

18.5.1 IF-THEN语句 389

18.5.2 DO组语句 390

18.5.3 循环语句 390

18.5.4 转移语句 391

18.5.5 创建和运行模块语句 392

18.5.6 停止执行 399

18.6 SAS数据集操作 400

18.6.1 打开一个SAS数据集 400

18.6.2 激活一个SAS数据集 400

18.6.3 显示SAS数据集信息 401

18.6.4 指定默认SAS逻辑库 401

18.6.5 列出观测值 401

18.6.6 由SAS数据集创建矩阵 404

18.6.7 编辑SAS数据集 405

18.6.8 由矩阵创建SAS数据集 406

18.6.9 理解文件结束条件 407

18.6.10 产生概括统计量 407

18.6.11 SAS数据集排序 407

18.6.12 建立SAS数据集索引 408

18.6.13 数据集维护函数 408

18.6.14 与DATA步的相同和不同之处 408

18.7 访问外部文件 409

18.7.1 概述 409

18.7.2 打开外部文件 409

18.7.3 读入外部文件 410

18.7.4 产生外部文件 411

18.7.5 列出打开的外部文件 412

18.7.6 关闭打开的外部文件 412

习题 413

第19章 SQL过程简介 416

19.1 SQL概念 416

19.2 SQL过程 416

19.3 SQL过程术语 416

19.4 PROC SQL特点 417

19.5 PROC SQL与SAS DATA步比较举例 418

第20章 SQL从单个表中检索数据 420

20.1 SELECT语句综述 420

20.2 SELECT子句 420

20.2.1 语句格式 420

20.2.2 选择所有列 421

20.2.3 选择特定列 422

20.2.4 用DISTINCT语句剔除查询结果中重复观测 422

20.2.5 用DESCRIBE语句查看表属性 422

20.2.6 创建说明列 423

20.2.7 计算新列值 423

20.2.8 输出时覆盖列标签 424

20.2.9 为列分配别名 424

20.2.10 CALCULATED语句 425

20.2.11 CASE表达式 425

20.2.12 指定列属性 427

20.3 使用ORDER BY语句排序 427

20.3.1 语句格式 428

20.3.2 对CALCULATED列排序 428

20.3.3 通过指定SELECT子句中列位置排序 429

20.3.4 用没被选择列排序 429

20.3.5 指定特殊排列方式 430

20.3.6 对含缺失值列进行排序 430

20.4 用WHERE语句选择观测 430

20.4.1 语句格式 431

20.4.2 使用IN算符 432

20.4.3 使用IS MISSING算符 432

20.4.4 使用BETWEEN-AND算符 433

20.4.5 使用LIKE算符 433

20.4.6 使用截短字符串算符来比较字符串 433

20.4.7 使用WHERE语句遇到空值时的处理 434

20.5 使用汇总函数汇总数据 435

20.5.1 汇总函数 435

20.5.2 用WHERE子句汇总数据 435

20.5.3 使用SUM函数 436

20.5.4 观测数汇总 436

20.5.5 含缺失值数据汇总 437

20.6 使用GROUP BY子句进行分组汇总 438

20.6.1 语句格式 438

20.6.2 以某列值作为分组依据 438

20.6.3 分组和排序 439

20.6.4 对缺失值排序 439

20.7 用HAVING子句选择分组数据 440

20.7.1 语句格式 440

20.7.2 简单HAVING子句 440

20.7.3 HAVING子句与WHERE子句的区别 441

20.7.4 HAVING子句与汇总函数一起使用 441

20.8 验证查询语句VALIDATE 442

20.8.1 语句格式 442

20.8.2 举例 442

习题 442

第21章 利用SQL语句从多个表中检索数据 443

21.1 使用连接语句JOIN从多个表中检索数据 443

21.1.1 简单连接 443

21.1.2 JOIN方式分类 444

21.1.3 内部连接 444

21.1.4 使用关键词INNER JOIN的内部连接 446

21.1.5 使用比较算符连接表 446

21.1.6 缺失值对连接的影响 447

21.1.7 从多于两个表的数据集中查询数据 448

21.1.8 不同形式的外部连接 448

21.1.9 特殊连接 450

21.1.10 连接使用COALESCE函数 452

21.2 MERGE语句和JOIN连接比较 453

21.2.1 所有行匹配无重复值情况 453

21.2.2 部分行匹配无重复值情况 454

21.2.3 有重复值情况 455

21.3 使用子查询语句选择数据 456

21.3.1 产生单个值的子查询 456

21.3.2 产生多个值的子查询 457

21.3.3 混合子查询 457

21.3.4 用EXISTS语句检测一组数据的存在性 458

21.3.5 子查询的多重嵌套 458

21.3.6 在JOIN连接中使用子查询 459

21.4 JOIN连接和子查询使用 459

21.5 合并两个或多个查询结果 460

21.5.1 SET算符综述 460

21.5.2 由多个查询产生非重复观测(UNION算符) 461

21.5.3 产生只属于第一个查询的观测(EXCEPT算符) 462

21.5.4 从多个查询中产生公共部分(INTERSECT算符) 463

21.5.5 直接连接查询结果(OUTER UNION算符) 464

21.5.6 特殊查询合并方式 465

习题 466

第22章 SQL创建与更新表和视图 467

22.1 创建表 467

22.1.1 用列定义方式创建表 467

22.1.2 从查询结果创建表 468

22.1.3 复制已有表属性 469

22.1.4 使用DATA SET选项语句 470

22.2 在表中插入行 470

22.2.1 用SET子句插入观测 471

22.2.2 用VALUES子句插入行 471

22.2.3 在表中插入查询结果 472

22.3 更新表中数据 473

22.3.1 用同一方式更新表中所有观测 473

22.3.2 用不同方式更新表中观测 474

22.3.3 如何处理更新错误 475

22.4 删除观测行 475

22.5 列修改 475

22.5.1 增加列 475

22.5.2 修改列 476

22.5.3 删除列 477

22.5.4 删除表 477

22.6 创建索引 477

22.6.1 使用PROC SQL来创建索引 478

22.6.2 创建索引建议 478

22.6.3 删除索引 478

22.7 创建和使用完整性约束 479

22.7.1 完整性约束语句格式 479

22.7.2 一般完整性约束 480

22.7.3 参考完整性约束 481

22.7.4 建立完整性约束实例 481

22.8 建立和使用PROC SQL视图 482

22.8.1 建立视图 483

22.8.2 描述视图 484

22.8.3 更新视图 484

22.8.4 在视图中加入LIBNAME语句 485

22.8.5 删除视图 485

22.8.6 设定线内视图 486

22.8.7 SQL过程技巧 486

习题 486

第23章 SQL过程编程 488

23.1 使用PROC SQL选项来建立和调试查询 488

23.1.1 使用INOBS和OUTOBS减少运行时间 488

23.1.2 用LOOPS选项来限制反复 489

23.1.3 使用NOEXEC选项和VALIDATE语句检查语法 489

23.1.4 用FEEDBACK选项展开SELECT 489

23.1.5 使用STIMER选项计时 490

23.1.6 使用RESET语句重置PROC SQL选项 491

23.2 优化查询 492

23.2.1 使用索引优化查询 492

23.2.2 在SET算符操作中使用关键词ALL 492

23.2.3 创建表和视图时不使用ORDER BY子句 492

23.2.4 使用线内视图来代替临时表 493

23.2.5 比较子查询和连接 493

23.2.6 连接表时使用WHERE(ON)表达式 493

23.3 用表词典来访问SAS系统信息 493

23.3.1 表词典概念 493

23.3.2 使用DICTIONARY.TABLES 494

23.3.3 使用DICTIONARY.COLUMNS 495

23.3.4 使用表视图技巧 495

23.4 在PROC SQL中使用宏工具 496

23.4.1 在PROC SQL中创建宏变量 496

23.4.2 由查询结果的第一个观测创建宏变量 497

23.4.3 从汇总函数结果中创建宏变量 497

23.4.4 创建多个宏变量 498

23.4.5 在宏变量中实现连接 498

23.4.6 使用宏创建表 499

23.4.7 使用PROC SQL自动宏变量 500

23.5 PROC SQL使用SAS输出传输系统ODS 501

习题 501

第24章 SAS处理流程与指针控制 502

24.1 SAS处理流程 502

24.1.1 数据步定义 502

24.1.2 数据步处理流程 503

24.2 指针控制 509

24.2.1 列行指针控制 509

24.2.2 使用行固定说明符 510

24.2.3 读完数据后的指针位置 512

24.2.4 多个数据行构成一个观测 513

24.2.5 指针超过行结尾 514

24.2.6 指针移到第一列之前 515

习题 515

附录A SAS函数与功能 516

附录B IML函数与语句 523