文章目录

  • SAS Base
    • 数据基本操作 filename、infile/input、libname、proc contents
      • filename
      • infile/input
      • libname
      • proc contents
      • firstobs, obs,\_n_
      • where
      • keep
      • drop、output、length
      • min, max, mod, ceil, sum, int, floor, round, abs
      • datepart,MDY, month, day, intck, intnx
      • left, right, trim, compress, strip, substr, scan, index, upcase, lowcase, cat(t, s, x),cats(t, s, x),catx(t, s, x)
      • length、lengthn、lengthc
      • find、put/input
      • date format
      • proc format
      • label/rename
      • proc import/proc export
      • symbol operate: =, <, >, ne、if-then
      • do...end、 do until、do while
      • do...end、 do until、do while

SAS Base

数据基本操作 filename、infile/input、libname、proc contents

filename

​ 作用:将文件设置为一个变量,用于读取数据。

filename demo 'F:\User\classdata\demo.txt';
/* 将demo.txt文件复制给demo */

infile/input

​ 作用:用于数据的读取和设置变量。

filename demo 'F:\SU_Files\classdata\demo.txt';
/* 将demo.txt文件复制给demo */
data demo;infile demo;input id day month $ year @35 date date10.@54 age sex $; format date datetime.;
run;

libname

​ 作用:设置库的路径。

libname classdata 'F:\SU_Files\classdata';
/* 设置classdata库路径 */

proc contents

​ 作用:输出数据集的属性信息。

proc contents data=sashelp.bmt;
run;

firstobs, obs,_n_

​ 作用:设置观测值的起始值、结束值、行数。

data bmt;set sashelp.bmt (firstobs=2 obs=5);if _n_=3 then put 'this is third line';
run;
/*读取第2-5行数据,在读取到第3行时输出字符串'this is third line' */

where

​ 作用:根据变量设置条件。

data cars;set sashelp.cars ;where Cylinders<3;
run;
/*读取Cylinders<3的数据 */

keep

​ 作用:保留变量。

data cars(keep= make model type );set sashelp.cars ;
run;
/*保留变量make model type */

drop、output、length

​ 作用:drop删除变量;output输出行数;length定义变量长度。

data demo(drop=i ip);length id $10;do i=1 to 10;id=ranuni(1)*100;ip=ranuni(2)*100;output;end;
run;
/*删除关键字i和ip,定义id的格式为字符型长度为10,在循环中每循环一次输出数据*/

min, max, mod, ceil, sum, int, floor, round, abs

​ 作用:最小值、最大值、取余、(向上)取整、求和、取整、(向下)取整、近似值、绝对值。

data demo;c1=min(5,2,3);c2=max(3,2,5);c3=mod(10,3);c4=ceil(5.4);c5=sum(4,6);c6=int(5.4);c7=floor(5.4);c8=round(5.4321,0.01);c9=abs(-2);put c1= c2= c3= c4= c5= c6= c7= c8= c9=;
run;
/* c1=2 c2=5 c3=1 c4=6 c5=10 c6=5 c7=5 c8=5.43 c9=2 */

datepart,MDY, month, day, intck, intnx

​ 作用:返回时间日期中的日期、返回自定义日期,返回月、日、计算两日期之间(年月日)距离,计算距离某日期的n年月日的日期值。

data demo;dt='05May21 12:12:12'dt;dt0='05May2022'd;d1=datepart(dt);d2=month(dt0);d3=day(dt0);d4=intck("month",datepart(dt),dt0);d5=intnx('month',datepart(dt),5,'e');d6=MDY(2,2,2021);format d1 date10.  d5 date10. d6 date10.;put d1= d2= d3= d4= d5= d6=;
run;
*d1=05MAY2021 d2=5 d3=5 d4=12 d5=31OCT2021 d6=02FEB2021

left, right, trim, compress, strip, substr, scan, index, upcase, lowcase, cat(t, s, x),cats(t, s, x),catx(t, s, x)

​ 作用:去掉左侧空格、去掉右侧空格、去掉右侧空格、去掉所有空格、去掉两端空格、截取字符串、根据字符串索引获得字符串、根据字符获得字符索引、小写转大写、大写转小写、连接字符tsx,去掉tsx空格并连接、去掉sx首尾空格并连接字符t。

data demo;c=' s a a ';c1='a' || left(' s a a ') || 'z';c2='a' || right(' s a a ') || 'z';c3='a' || trim(' s a a ') || 'z';c4='a' || compress(' s a a ') || 'z';c5='a' || strip(' s a a ') || 'z';c6=substr(' s a a ',2,1);c7=scan(' s a a ',1);c8=index('bcdee','d');c9=upcase('sas');c10=lowcase('SAS');c11=cat('s','a','s');c12=catx('a','s','c');c13=cats(' a ',' s ',' c d');put c1= c2= c3= c4= c5= c6= c7= c8= c9= c10= c11= c12= c12=;
run;
*c1=as a a  z c2=a  s a az c3=a s a az c4=asaaz c5=as a az c6=s c7=s c8=3 c9=SAS c10=sas c11=sas c12=sac c13=asc d

length、lengthn、lengthc

​ 作用:计数字符串长度。length计数字符(除末尾空格),无字符返回1;length计数字符(除末尾空格),无字符返回0;计数所有字符数量。

data demo;c=' s a  s ';c1=length(c);c2=lengthn(c);c3=lengthc(c);put c1= c2= c3=;
run;
* c1=7 c2=7 c3=8

find、put/input

作用:find查找字符串,返回索引,参数’i’表示不区分大小写。put/input设置读取/输出时的数据格式。

data demo;c='made in CHINA';c1=find(c,'N',1);c2=find(c,'N','i',1);put c1= c2=;
run;
* c1=12 c2=7;data demo;c='123.45';c0=123.45;c1=input(c,$5.);c2=input(c0,$5.);c3=put(c,$5.);c4=put(c0,$5.);put c1= c2= c3= c4=;
run;
* c1=123.4 c2=. c3=123.4 c4=123;

date format

date8.       01JAN12
date9.      01JAN2012
yymmdd8.    yymmdd
yymmdd10.   yyyymmdd
time5.      hh:mm 时间早于10:00则h:mm
time7.      hh:mm:ss 时间早于10:00则h:mm:ss
tod5.       hh:mm
tod7.       hh:mm 时间早于10:00则h:mm:ss
tod8.       hh:mm:ss
datetime20. 01JAN2012:00:00:00
datetime18. datetime16.   01JAN12:00:00:00

proc format

proc format;value range 0-60='低'61-80='中'81-100='高';
run;
data demo;input age @@;format age range.;cards;20 70 90;
run;

label/rename

data demo;input age sex $ @@;cards;20 F 70  M 90 F;
run;
data demo1(rename=(age=agg));set demo;label age = '年龄'sex  = '性别';
run;

proc import/proc export

proc import out=demodatafile=".xls"DBMS= xls repalce;getnames=yes;sheet= sheetname;
run;proc export data=demooutfile='.xlsx'DBMS=xlsx replace;sheet=sheetname;    * 可选参数
run;

symbol operate: =, <, >, ne、if-then

data bmt;set sashelp.bmt (firstobs=2 obs=5);if _n_=3 then put 'this is third line';
run;
/*读取第2-5行数据,在读取到第3行时输出字符串'this is third line' */
/*
= eq   等于
^= ne  不等于
> gt 大于
< lt 小于
>= ge   大于等于
<= le   小于等于
**      乘方
*/

do…end、 do until、do while

data demo;do i=1 to 10;num=ranuni(1)*100;output;end;
run;data demo;i=1;do until (i>10);num=ranuni(1)*100;i=i+1;output;end;
run;data demo;i=1;do while (i<10);num=ranuni(1)*100;i=i+1;output;end;
run;

do…end、 do until、do while

data demo;do i=1 to 10;num=ranuni(1)*100;output;end;
run;data demo;i=1;do until (i>10);num=ranuni(1)*100;i=i+1;output;end;
run;data demo;i=1;do while (i<10);num=ranuni(1)*100;i=i+1;output;end;
run;

SAS Base基本操作相关推荐

  1. SAS BASE 9.4 跑数报空间不足提示解决办法(修改默认临时work路径)

    用base跑复杂.数据量大的脚本时,会报C盘空间不足的提示,无法继续进行下去. 解决办法如下: 1.找到SAS安装路径:例我的为"D:\SAS\SASHome\SASFoundation\9 ...

  2. 2022 年 SAS base认证考试 记录以及Tips

    之前参加的比赛有一次免费参加SAS认证的机会,所以就去参加了一次.网上有一些相应的介绍之类的但可能都比较早了,于是这次去之前也不知道是真是假,于是记录一下考试内容,然后如果现在有还要考这个认证的同学可 ...

  3. SAS base认证知识点汇总一(2)

    2 在SAS中汇入资料 2.1 了解SAS资料     2.1.1 SAS资料表         (1)SAS数据集以二维表形式展示,分为变量和观测量,观测量为变量的值.变量包括基本属性的变量名.变量 ...

  4. 【SAS BASE】SCAN函数

    1 [例子] 2 3 data a; 4 arg='ABC.DEF(X=Y)'; 5 word=scan(arg,3); 6 put word; 7 run;/*word:X=Y*/ 8 9 data ...

  5. sas与matlab区别,SAS与MATLAB软件应用教学大纲

    SAS与MATLAB软件应用教学大纲 <SAS与MATLAB软件应用>教学大纲 一.课程简介 本课程为统计专业的选修课程,是各门专业统计课程中进行具体数据分析的必备基础.总学时数为54(含 ...

  6. 信贷中的SAS,一份关于它的系统性内容|含案例

    我们知道在目前很多做分析的软件中,python是各位互金同学用得最多的语言,但相对银行的同学而言,目前使用上还是以SAS居多. SAS在国际上已被誉为统计分析的标准软件,无论是制药.金融.保险.市场部 ...

  7. SAS系统学习之初探

    以前在学校接触过SAS,跟着课程学习并将SAS用于统计理论的实现,学习期间断断续续,不成系统.2013年有幸参与SAS在高校举办的首次数据分析大赛,并获得"团体十强"的荣誉,之后很 ...

  8. 用计算机核裂变模拟实验,SAS和蒙特卡罗模拟(1):开篇

    SAS for Monte Carlo Simulations (1): Introduction 一.为什么选择SAS做蒙特卡罗模拟? 为什么要用SAS做蒙卡?首先,对我来说,我只会用SAS,而且打 ...

  9. SAS学习笔记(一)

    SAS体系介绍 本课程大纲: 1.SAS安装 2.SAS界面 3.SAS的处理流程 4.SAS的模块 5.逻辑库 6.数据步与过程步举例 7.变量 1.SAS安装 SAS的安装比较麻烦,因为网上比较难 ...

最新文章

  1. PHP CI框架如何去掉 sql 里的反引号
  2. Python实战从入门到精通第十五讲——定义匿名或内联函数
  3. 浅析Linux下的task_struct结构体
  4. winform窗体在桌面右下角显示(任务栏上方)
  5. ue4蓝图运行顺序_如何从零基础慢慢学习到UE4的顺序?
  6. Cause: java.sql.SQLException: Incorrect string value: ‘\xF4\x80\x80\x82\xF4\x80...‘ for column ‘xxx‘
  7. Spark jars依赖问题
  8. 浏览器F12功能总结
  9. 查询计算机系男生修了,sql练习参考答案
  10. Windows server 2019从头搭建私网***
  11. 傻瓜式制作纯净版win10启动盘
  12. python用turtle画七巧板_python之“七巧板”
  13. mfc函数---CFileDialog的用法
  14. JS实现右键拖动元素
  15. 微信支付服务商的子商户在没有绑定appid,正常使用微信支付功能的方法
  16. 走进WPF之MVVM完整案例
  17. 光立方PCB绘画时出现的问题
  18. 分辨率、DPI、PPI和屏幕尺寸,你都知道是啥么?
  19. vuex之webApp购物流程实现
  20. html---网上书城案例

热门文章

  1. .net 海关跨境进口公服报文
  2. 初学树莓派——(九)DHT11数据传入ONENET
  3. 网络穿透与音视频技术(2)——NAT的概念及工作模式(下)
  4. GitHub托管BootStrap资源汇总
  5. Python实践11:基于PIL对图片批量去水印
  6. 某教育云平台统一登录验证(单点登录)模型图
  7. 计算机快速启动栏在哪,快速启动栏,教您怎么显示快速启动栏
  8. 中国协作机器人行业投资潜力规划及未来发展趋势报告2021-2027年
  9. 头条golang面试题
  10. python实现语音控制