我没有SAS的工作知识,但我有一个我需要导入和使用的excel文件。在excel文件中,大约有100行(观察)和7列(数量)。在某些情况下,特定观察可能在一列中没有任何数据。在将数据读入SAS时,我需要完全忽略该观察结果。我想知道这个命令会是什么。
一个明显便宜的解决方案是删除excel文件中缺少数据的行,但我想用SAS命令执行此操作,因为我想学习一些SAS。
谢谢!
答案 0 :(得分:3)
根据需要导入数据,例如使用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。它非常彻底。
答案 1 :(得分:1)
如果您拥有“PC /文件的SAS / ACCESS接口”许可(提示:proc setinit),您可以使用此代码导入Excel文件。 where选项允许您选择要保留的行,在此示例中,您将保留“name”列不为空的行:
proc import
DATAFILE="your file.xlsx"
DBMS=XLSX
OUT=resulttabel(where=(name ne ""))
REPLACE;
MIXED=YES;
QUIT;