这个一个往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的帮助,“索引”里搜索proc import,有详细的语法参数的解释,不写那些参数就会使用默认值。 参考技术A GETNAMES=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里导入表的程序,这几句程序具体是啥意思?后面几句好像给注释掉也没报错……的主要内容,如果未能解决你的问题,请参考以下文章

在sas里怎么输出三线表

sas的结果怎么导出?我是新手,在导出里找不到计算结果,知道的回答一下,谢谢

听说程序员都爱说这几句话,是吗? | 每日趣闻

单片机C程序的入口程序是啥?

哪位能详细说明一下sas的数据分析过程?

SAS 程序冷知识——如何在启动sas程序时自动执行一些宏?