我没有SAS的工作知识,但我有一个需要导入和使用的excel文件。在excel文件中有大约100行(观察值)和7列(数量)。在某些情况下,某个特定的观察可能没有任何一列中的数据。在将数据读入SAS时,我需要完全忽略这一观察。我想知道这是什么命令。IGNORE SAS数据导入EXCEL
一个明显便宜的解决方案是删除excel文件中缺少数据的行,但我想用SAS命令来做这件事,因为我想学习一些SAS。
谢谢!
我没有SAS的工作知识,但我有一个需要导入和使用的excel文件。在excel文件中有大约100行(观察值)和7列(数量)。在某些情况下,某个特定的观察可能没有任何一列中的数据。在将数据读入SAS时,我需要完全忽略这一观察。我想知道这是什么命令。IGNORE SAS数据导入EXCEL
一个明显便宜的解决方案是删除excel文件中缺少数据的行,但我想用SAS命令来做这件事,因为我想学习一些SAS。
谢谢!
如果您有“授权给PC文件的SAS/ACCESS接口”(提示:proc setinit),则可以使用此代码导入Excel文件。在这里选项让你选择你想要的行保留,在这个例子中,你将保持行,其中列“名”不为空:
proc import
DATAFILE="your file.xlsx"
DBMS=XLSX
OUT=resulttabel(where=(name ne ""))
REPLACE;
MIXED=YES;
QUIT;
导入不过你想要的数据,例如与IMPORT程序,如Stig Eide所述。
proc import
datafile = 'C:\...\file.xlsx'
dbms = xlsx
out = xldata
replace;
mixed = YES;
getnames = YES;
run;
说明:
如果我理解正确的话,你想删除每一个观察值在具有在七列的任何缺失值的数据集。有发烧友方法可以做到这一点,但我推荐一个简单的方法是这样的:
data xldata;
set xldata;
where cmiss(col1, col2, ..., col7) = 0;
run;
的CMISS函数计算遗漏值在你每个观察指定变量的数量,而不管数据类型。由于我们使用的是WHERE CMISS()= 0,所以得到的数据集将只包含没有任何七列中任何一个缺失数据的记录。
如有疑问,请尝试浏览SAS online documentation。这是非常彻底的。
由于'IMPORT'不是一个交互式程序,因此该步骤应该以'RUN'而不是'QUIT'来终止。 – 2014-11-17 22:23:42