SAS数据集的建立、存储、导出、导入和编辑

某班某课程的三个测试成绩如下表:

序号

学号

姓名

性别

test1

test2

test3

1

20093096

毛万进

88

79

92

2

20093097

李海铭

81

83

85

3

20093098

仇语言

80

79

83

4

20093099

庞晓娟

89

76

91

5

20093100

刘栢童

86

80

88

6

20093101

王志平

76

85

82

7

20093102

黄菊红

85

78

89

8

20093103

屈欢欢

81

90

87

9

20093104

罗文秀

90

72

85

10

20093105

柯彬彬

87

68

81

11

20093106

彭小军

76

84

81

12

20093108

陈阿鸿

68

79

75

13

20093109

崔根来

78

80

85

14

20093110

宋伟军

77

83

82

15

20093112

黄拥华

67

78

74

16

20093113

黎芳

80

82

86

17

20093114

李亚桢

79

89

83

18

20093115

谭庆

57

68

66

19

20093116

邹翠霞

74

95

82

20

20093118

王赵辉

54

78

64

21

20093119

刘已鹏

76

89

83

22

20093120

周志建

72

85

77

23

20093122

肖江

64

90

74

24

20093123

郑红日

57

65

65

25

20093124

秦瑶

82

81

86

26

20093126

周晗晶

88

88

91

27

20093127

段梦

96

93

95

28

20093128

许哲榕

89

89

91

29

20093129

柏华洋

79

87

83

30

20093130

申鹏飞

65

89

74

31

20093132

吴高飞

88

79

92

32

20093133

方文

87

84

90

33

20093134

王环环

82

86

87

34

20093135

符文庆

82

90

86

根据上述数据,按下列要求分别建立SAS数据集

  1. 建立临时数据集名aaa,写出相应的程序;
  2. 建立SAS库标记study;
  3. 将上述数据存放在(2)中建立的库中,并取数据集study.aaa,并加以查看,写出相应的程序;
  4. 将上述数据建立一个excel外部数据,然后转化为SAS数据集,并加以呈现呈现,写出相应的程序;
  5. 将(3)中建立的数据集中的所有男生放到数据集studentf中,而所有女生放到数据集studentm中. 并加以呈现呈现,写出相应的程序。
  6. 求出数据集study.aaa中test1,test2,test3的总分和平均分,并加以呈现呈现,写出相应的程序。

实验目的:

  1. 了解SAS系统的主要窗口及其功能(2)了解SAS程序的组成及SAS程序规则;(3)掌握新库标记的建立及建立永久的和临时的SAS数据集的方法(4)外部数据集导入称为SAS数据集集及SAS数据集的编辑。

实验程序:

1、

data aaa;

input xuhao xh name$ sex$ test1-test3;

cards;

120093096毛万进887992

220093097李海铭818385

320093098仇语言807983

420093099庞晓娟897691

520093100刘栢童868088

620093101王志平768582

720093102黄菊红857889

820093103屈欢欢819087

920093104罗文秀907285

1020093105柯彬彬876881

1120093106彭小军768481

1220093108陈阿鸿687975

1320093109崔根来788085

1420093110宋伟军778382

1520093112黄拥华677874

1620093113黎芳808286

1720093114李亚桢798983

1820093115谭庆576866

1920093116邹翠霞749582

2020093118王赵辉547864

2120093119刘已鹏768983

2220093120周志建728577

2320093122肖江649074

2420093123郑红日576565

2520093124秦瑶828186

2620093126周晗晶888891

2720093127段梦969395

2820093128许哲榕898991

2920093129柏华洋798783

3020093130申鹏飞658974

3120093132吴高飞887992

3220093133方文878490

3320093134王环环828687

3420093135符文庆829086

;

run;

proc  print data=aaa;

run;

2、3、

libname study'D:\SAS\SAS学习';

data study.aaa;

set aaa;

keep xuhao xh name sex test1-test3;

run;

proc print data=study.aaa;

run;

4、

proc import out=aaa

datafile="C:\Users\86166\Desktop\IT\SAS实验\实验1\SAS实验1.xls"              

dbms=excel2000 replace;

proc print data=aaa;

5、

data studentf studentm;

set study.aaa;

select (sex);

when ("男") output studentf;

when ("女") output studentm;

otherwise put sex="错误";

end;

run;

proc print data=studentf;

proc print data=studentm;

run;

6、

data st;

set study.aaa;

sum=test1+test2+test3;

averge=sum/3;

run;

proc print data;

实验中存在的问题及解决的办法:

问题:1、要输入的数据是一个表,如何把它输入到PMG里面?

  1. 当要输入的是汉字的时候,如何输入到PMG里面、
  2. 从外部Excel中导入数据,为什么列名被其他符号代替了?

解决:

  1. 在word文档中把表复制到cards;的后面,但在实际中我理解的是表格并不能直接输入,于是把表复制到excel中,利用python转换为txt文本输入。
  2. 在txt文件中写好代码,再复制到PMG窗口中即可。
  3. 因为从excel中导入的列名夹杂中文,不能被SAS识别

版权声明:本文为weixin_56115549原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。