我有一个我想要导入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)我遗漏的这些数据是否存在任何其他问题,可能导致无法正常工作?
非常感谢你的时间。
答案 0 :(得分: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)允许您添加这样的属性。
要获得写入输出窗口的数据集内容的简单列表,您只需运行简单的PROC PRINT
:
proc print data=want;
title 'This is my data';
run;
关于如何对像这样的数据集进行线性回归的问题可能超出了StackOverflow的目的。文档中有大量信息和示例。在您的情况下,首先阅读 SAS Concepts 一书,然后阅读 SAS / STAT程序指南中的PROC REG
。 Here is a link到SAS主要文档。
答案 1 :(得分: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;
答案 2 :(得分:0)
如果您有制表符分隔的数据文件,您可以考虑至少在最初使用PROC IMPORT。
proc import file="//wherever/myfile.txt" out=mydataset dbms=tab replace;
run;
这将生成一个数据集。它也会有用地将输入代码放入日志中。您可以将其从日志复制到程序编辑器中,然后在导入过程做出错误决策时进行修改(例如,它可能决定具有“DQ”的列应该是字符变量)。您可以将其调整为数字,然后重新运行粘贴的代码。
现在,您可以对该数据集执行任何操作。你可以做像
这样的事情proc freq data=mydataset;
run;
其余的问题实际上是一般性的研究问题,如果不了解您的分析并且有大量时间来写答案,这些问题是不容易回答的。我建议您在线阅读数据分析;这些并不是SAS特有的问题,而是一般的研究指南,关于这些主题的论文很多。