1

我有一个数据文件,我正在尝试将其导入 SAS,如下所示:

WCM2B   W   C   M   2   B   M.B 2   18.4    12.3    g
WCM2B   W   C   M   2   B   M.B 2   19.2    12.3    g
WCM2B   W   C   M   2   B   S.P 2   19.5    DQ     ('')
WCM2B   W   C   M   2   B   Z.G 2   17.7    10.7    g
WCM2B   W   C   M   2   B   Z.G 2   18.4    10.7    g
WCM2B   W   C   M   2   B   Z.G 2   17.6    10.8    g
WCM2B   W   C   M   2   B   Z.G 2   20.1    12.1    g

这些列中的每一列都有标题,其中一些列出了分类变量,而另一些则没有。

我的问题:

1) 什么是确保这样的文本文件的正确代码,如上所示,由空格分隔,并且在 SAS 中正确格式化了 ~36 行和 11 列数据?然后如何对这些数据执行操作,以便它出现在输出窗口中?即使对某些选定的 infile 执行最基本的程序也可以。理想情况下,如果有人感觉非常慷慨,我会尝试了解如何进行回归分析,包括分析残差和标准统计数据。

2)我是否需要将分类变量更改为二进制才能正确分析数据?

3)我缺少的这些数据是否还有其他问题可能会阻止它工作?

非常感谢您的宝贵时间。

4

3 回答 3

0

我没有可用的 SAS 来测试此代码。让我知道事情的后续。

proc format;
    invalue v10fmt "DQ"  = .
                   other = _same_;
run;

data dsname;
    informat v10 v10fmt.;
    length v1 $5. v2 v3 v4 v6 $1. v7 $3. v11 $1.;
    infile "//file/location/and/name" firstobs = 2 delimiter = "09"x;
    input v1-v11;
run;
于 2013-06-01T19:46:33.333 回答
0

仅处理如何读取您的外部文件!

假设您有一个与描述完全相同的文件(在第一条记录中包含标题行和由空格分隔的字段),您可以使用PROC IMPORT将其读入 SAS 数据集:

proc import out=want
     datafile='c:\temp\tempdata.txt'
     dbms=dlm;
     getnames=yes;
     delimiter = ' ';
run;

对于像这样的分隔文件,SAS 使用称为外部文件接口的工具来检查文件并生成常规数据步骤代码来读取它。如果您查看 SAS 日志,您将看到生成的实际代码(一个infile语句、一组数据定义语句和一个输入语句)。您可以使用该代码作为示例来根据需要细化输入。

请注意,SAS 只有两种数据类型(字符和数字)。诸如“分类”和“二进制”之类的分类是使用问题,而不是正式数据定义的一部分。但是,某些其他 SAS 工具(例如 Enterprise Miner)确实允许您添加这样的属性。

要获得写入输出窗口的数据集内容的简单列表,您可以运行 simple PROC PRINT

proc print data=want;
   title 'This is my data';
run;

关于如何对这样的数据集进行线性回归之类的问题可能超出了 StackOverflow 的目的。文档中有大量信息和示例。在您的情况下,首先阅读SAS 概念PROC REG书,然后阅读SAS/STAT 程序指南这是主要 SAS 文档的链接。

于 2013-06-01T15:11:57.127 回答
0

如果您有一个制表符分隔的数据文件,您可以考虑至少在开始时使用 PROC IMPORT。

proc import file="//wherever/myfile.txt" out=mydataset dbms=tab replace;
run;

这将生成一个数据集。它还将有用地将输入代码放入日志中。您可以将其从日志复制到程序编辑器中,然后在导入过程做出错误决定时进行修改(例如,它可能决定带有“DQ”的列应该是字符变量)。您可以将其调整为数字,然后重新运行粘贴的代码。

现在你可以对那个数据集做任何你想做的事情。你可以做类似的事情

proc freq data=mydataset; 
run;

您的其余问题实际上是一般性的研究问题,如果不了解您的分析并有大量时间编写答案,就无法轻松回答:) 我建议您在线阅读有关数据分析的内容;这些并不是 SAS 所特有的真正问题,而是一般的研究指南,并且有很多关于这些主题的论文。

于 2013-06-06T14:08:09.927 回答