这个一个往SAS里导入表的程序,这几句程序具体是啥意思?后面几句好像给注释掉也没报错……
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了这个一个往SAS里导入表的程序,这几句程序具体是啥意思?后面几句好像给注释掉也没报错……相关的知识,希望对你有一定的参考价值。
程序如下:
PROC IMPORT OUT= Work.&Randomization
DATAFILE= "&Safetypath\&Randomization..xls"
DBMS=EXCEL REPLACE;
SHEET="Randomization$";
GETNAMES=YES;
MIXED=NO;
SCANTEXT=YES;
USEDATE=YES;
SCANTIME=YES;
RUN;
这几句是什么意思?好像不运行也可以?
GETNAMES=YES;
MIXED=NO;
SCANTEXT=YES;
USEDATE=YES;
SCANTIME=YES;
导入源文件字段名作为SAS数据集的字段名
MIXED=NO;
若某一列中包含数值型和字符型变量,将数值型按照缺省值处理。若选的是YES则是将数值型转换成字符型存储,默认为NO
SCANTEXT=YES;
将源文件中各列值的最长长度作为该列在SAS中的字段长度。
USEDATE=YES;
对于包含日期字段的源文件字段,在SAS中只保留DATE值,并以DATE.格式存储。
SCANTIME=YES;
对于源文件中只有time值的列,自动以时间格式(TIME)存储本回答被提问者采纳
如何在 SAS 中使用“输入”导入原始数据
【中文标题】如何在 SAS 中使用“输入”导入原始数据【英文标题】:How to import a raw data using "input" in SAS 【发布时间】:2022-01-15 09:18:59 【问题描述】:我想在 SAS 中使用“输入”导入原始数据。我的以下程序效果不佳。我怎么做?请给我一些建议。
data dt00;
infile datalines;
input Year School & $27. Enrolled : comma.;
datalines;
1868 U OF CALIFORNIA BERKELEY 31,612
1906 U OF CALIFORNIA DAVIS 21,838
1965 U OF CALIFORNIA IRVINE 15,874
1919 U OF CALIFORNIA LOS ANGELES 35,730
;
run;
【问题讨论】:
【参考方案1】:输入语句中的&
修饰符表示要在一行中查找两个或多个分隔符以标记该行中下一个“单词”的结尾。确保数据行实际上有额外的空间。还要确保在 INPUT 语句中的任何信息规范前面包含 :
修饰符。
data dt00;
input Year School & :$27. Enrolled : comma.;
datalines;
1868 U OF CALIFORNIA BERKELEY 31,612
1906 U OF CALIFORNIA DAVIS 21,838
1965 U OF CALIFORNIA IRVINE 15,874
1919 U OF CALIFORNIA LOS ANGELES 35,730
;
【讨论】:
【参考方案2】:datalines
默认以空格分隔。您可以在执行时指定特定的行长并进行额外的后处理清理,但最简单的做法是添加不同的分隔符并在您的 infile
语句中包含 dlm
选项。
data dt00;
infile datalines dlm='|';
length Year 8. School $27. Enrolled 8.;
input Year School$ Enrolled : comma.;
datalines;
1868|U OF CALIFORNIA BERKELEY|31,612
1906|U OF CALIFORNIA DAVIS|21,838
1965|U OF CALIFORNIA IRVINE|15,874
1919|U OF CALIFORNIA LOS ANGELES|35,730
;
run;
输出:
Year School Enrolled
1868 U OF CALIFORNIA BERKELEY 31612
1906 U OF CALIFORNIA DAVIS 21838
1965 U OF CALIFORNIA IRVINE 15874
1919 U OF CALIFORNIA LOS ANGELES 35730
SAS 在input
语句中有吨 选项,用于读取结构化和非结构化数据,但归根结底,尽可能以分隔格式获取它是最简单的。
【讨论】:
非常感谢,很有用。我明白了!以上是关于这个一个往SAS里导入表的程序,这几句程序具体是啥意思?后面几句好像给注释掉也没报错……的主要内容,如果未能解决你的问题,请参考以下文章