但是还不够0),所以啊,小编就打算写俩篇真正的0基础的推送。
1
写的第一个程序?
我感觉这是一个有趣的话题,可能每个人在SAS里面写的第一个程序已经不记得了~不过很多人都见过(学过C/Python/Java/C++/C#....等任何一门编程的人):“Hello World!”,
没错,小编敲的第一个程序就是在日志Put "Hello World"。你敲的也是这个么?
嗯,闲话说了这么多,其实就是为了引出上面这个截图的界面,这就是SAS启动的基本界面。右边:输出,日志,增强编辑器。左边:逻辑库等。
2
几个带in与不带in
通过上面的几张截图,你有没有疑问?format、informat长得好像啊,是孪生兄弟么?是的,他们是孪生兄弟,SAS里面还有几对孪生兄弟,infile/file,put/input...
01
format/informat
小编是这样理解的,in在此处是从外面拿进来(拿进SAS),没有in是SAS对外呈现的一种方式。
如下图:这儿的informat是指从外部按照一定格式读入SAS,YYMMDD10. 是一种日期的格式(format),在这里是按照YYMMDD10的格式读入SAS中(日期在SAS中的本质是一个数值,自1960年1月1日算起的)。
如何下图:format是一种格式呈现的方式,没有改变观测的本质,仅仅改变的是对外呈现的值。
其实,小编觉得informat很少用到,在真正的实践中,数据几乎不用我们用这样的方式导入(cards/datalines)。一般也很少用data infile 去读入外部数据(即使用,也很少用到informat)。所以小编觉得informat,可以暂时忽视。
02
input、put
其实put、input 在SAS中各有2种用法(小编的视野)。1.作为数据的读入,读出。2.作为函数的使用。
先来说说,做为数据的入读,读出的使用。
数据读入:
数据读出:
这儿小编用了file将文件输出,infile其实是将文件读入到SAS,Put 是将Hello world输出到外部文件中。
作为函数的使用(主要作为格式的转换吧)
例如:小编想将一个字符型的变量里面的数字提取出来,生成一个新的数值型变量,这个时候就可以使用input函数。(见下图一个例子)
在这里用到几个函数,compress函数(此处是保留字符串中的数字(本质还是字符)),然后在通过input函数进行转换format(best.,其实是一种format的格式)将字符型的数字转换成数值类型的。为了直观的日志上看变量的类型,利用Vlabel进行获取变量的类型(此处C代表字符型,N代表数值),并将其put到日志上,很明显Y的变量类型是数值型的。
现在来看看put函数的用法,Put函数在此处是和input对应的,input是变量衍生过程中将某个变量以什么的格式传递个进入的。(比如我们要将字符型变量转成数值型变量,我们要将字符型日期转换成数值型日期,当然变量如果在数据集中创建了,那么他的类型是无法改变的(依小编目前的见识),除非将其drop,在另外一个data步中在创建一样名称的变量,我在此处所指的转化都是衍生新的一个变量)。还是来说put的用法。
此处,我在sas中用proc format过程步来创建了一个sex的format(将25 定义为 男-25岁),这个时候小编可以用put函数,来创建一个新的变量,通过format的put,将Y变量的25 以自定义format格式传递给新生成的T变量。
看来我还是不适合当老师,感觉越说越不好理解了,好像这一块我自己还没有理解透彻吧。
其实还打算说一下input 中变量 $1-10 /@/@@等等...想想还是算了,不写了。简直在误人子弟..
这么难看的文章,都能看到这儿:那么小编,真的很不好意思,所以啊,就送送一点含金量特高的PPT(一个在美国读研的朋友的老师(一个SAS很厉害的统计学的教授)SAS课的PPT)小编看他的PPT,也觉得受益良多,从0基础到-ods 输出(报表设计,统计学画图全都有涵盖)而且仅仅10多个PPT,简直全是干货~力荐!
网盘地址:https://pan.baidu.com/s/1eTgKPAa