创建永久库和临时库以及@@的作用

26 篇文章 2 订阅

创建永久库和临时库以及@@的作用
@@表示执行下一个操作,指针保持在当前记录。
2、通过data步自主创建
版本问题不好解决且训练集比较小的情况下,决定通过data步创建,代码格式:
注:此处创建永久的数据集

Libname ex “e:\sas_data” ; /* 创建永久数据库*/
Data ex.GDP;
Input year gdp1 gdp2 gdp3 @@; /* @@表示 连续输入*/
cards;
1978 28.18857 47.87643 23.935
1979 31.26565 47.10062 21.63373
1980 30.17392 48.2222 21.60387
1981 31.88069 46.11002 22.00929
1982 33.38876 44.76504 21.84621
1983 33.17966 44.37958 22.44076
1984 32.13198 43.08654 24.78148
1985 28.44262 42.88581 28.67157
1986 27.15007 43.72381 29.13612
1987 26.81105 43.55061 29.63835
1988 25.69572 43.78965 30.51462
1989 25.10501 42.83112 32.06388
1990 27.11618 41.34065 31.5531
1991 24.52632 41.78868 33.68501
1992 21.78991 43.44464 34.75545
1993 19.70843 46.56837 33.7232
1994 19.76125 46.56929 33.56947
;
run;

之前未加@@时发生报错;
注:@与@@区别

@ 表示执行下一个操作时,指针移到下一个记录。
如:
cards;
1 2
3 4 ;

@@表示执行下一个操作,指针保持在当前记录。
如:
cards;
1 2 3 4;

3、数据打印
proc步的print函数

proc print data=ex.gdp;
run;
————————————————
例子
DATA TEMP;
/* 定义输入时的数据格式*/
INPUT @1 DOJ1 mmddyy10. @12 DOJ2 mmddyy10. ;
/* 定义输出的数据格式,若不定义则默认输出为数值*/
format DOJ1 date11. DOJ2 worddate20. ;
DATALINES;
01/12/2012 02/11/1998
;
PROC PRINT DATA=TEMP;
RUN;

子集数据
通过drop去掉一些指标
通过keep保留一些指标
KEEP var1 var2 … ;
DROP var1 var2 … ;

例子:

DATALINES;
1 Rick 623.3 IT
2 Dan 515.2 OPS
3 Mike 611.5 IT
4 Ryan 729.1 HR
5 Gary 843.25 FIN
6 Tusar 578.6 IT
7 Pranab 632.8 OPS
8 Rasmi 722.5 FIN
;
/* 第一种情况*/
RUN;
DATA OnlyDept;
SET Employee;
KEEP ename DEPT;
RUN;
PROC PRINT DATA=OnlyDept;
RUN;
/* 第二种情况*/
DATA OnlyDept;
SET Employee;
DROP empid salary;
RUN;
PROC PRINT DATA=OnlyDept;
RUN;
————————————————
1. SAS的逻辑库可分为永久库和临时库两种,请编写一段程序直接建立临时库中的下例数据集,并按升序排序。
数据名tong:20 13 20 16 23 19 19 16

1、运行程序:

data tong;
input number@@;
cards;
20 13 20 16 23 19 19 16
;
run;
proc sort data=tong;
by number;
proc print;
run;

————————————————
2. 请编写一段程序把数据2并列合并到数据1之后(纵向合并)。
数据1:
LiuWei M 21 175 65 A
ZhouLan F 20 160 46 O
DengXue F 22 158 45 B
ZhuJun M 23 177 68 O
HuangXiaoming M 19 173 65 O
数据2:
ChenQiong F 19 155 45 A
ZhaoFeng M 22 179 66 B
ZhangBin M 22 173 64 O
WeiLin F 20 162 46 A
ShiQiang M 21 180 70 B

解:运行程序:
data one;
input name $ sex $ age height weight blood $;
cards;
LiuWei M 21 175 65 A
ZhouLan F 20 160 46 O
DengXue F 22 158 45 B
ZhuJun M 23 177 68 O
HuangXiaoming M 19 173 65 O
;
run;
data two;
input name $ sex $ age height weight blood $;
cards;
ChenQiong F 19 155 45 A
ZhaoFeng M 22 179 66 B
ZhangBin M 22 173 64 O
WeiLin F 20 162 46 A
ShiQiang M 21 180 70 B
;
run;
data all;
set one two;
run;
proc print data=all;
run;
将运行结果导出(.xls格式):
————————————————
3. 1). 数据1( suju1.txt)和数据2( suju2.txt)为存放在D:\中的两个文本文件,请编写一段程序读入外部数据,建立成SAS的临时库中的两个数据集。
2). 把数据1合并到数据2的尾部(横向合并)。
解:运行程序:
data s1;
infile “e:\sas_data\suju1.txt”;
input xueh score class;
run;
data s2;
infile “e:\sas_data\suju2.txt”;
input name $ sex $ age;
run;
data zong;
merge s1 s2;
run;
proc print data=zong;
run;
将运行结果导出(.xls格式):
————————————————
版权声明:本文为CSDN博主「Sunnyylli」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/Sunnyylli/article/details/106976021

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值