我有一个带有注释的文本文件,需要在SAS中导入。文本文件如下所示
# DATA1
#
# --
#
ID nbmiss x1 x2 x3 x4
1 1 45 38 47
2 0 37 45 39 51
3 3 58
4 4
5 0 68 45 73 76
6 2 52 48
我在SAS中的输出必须如下所示
Obs x1 x2 x3 x4
1 . 45 38 47
2 37 45 39 51
3 . . . 58
4 . . . .
5 68 45 73 76
6 . . 52 48
这是我所做的。它给了我我想要的东西,但是很长。我认为有一种更简单的方法。
proc import datafile= 'Z:\bloc1data\data\data1.txt'
out=class
dbms=dlm
replace;
datarow=6;
delimiter='09'x;
run;
proc print data = work.class label;
var VAR3 VAR4 VAR5 VAR6;
label VAR3='x1' VAR4='x2' VAR5='x3' VAR6='x4';
run;
我的问题是如何以简化的方式获得相同的输出?
感谢您的时间。
这是进行导入的部分:
proc import datafile= 'Z:\bloc1data\data\data1.txt'
out=class
dbms=dlm
replace;
datarow=6;
delimiter='09'x;
run;
对我来说,这似乎很短。实际的四行代码,大约一百个字符...数据步骤中的等效代码基本相同。
data want;
infile 'z:\bloc1data\data\data1.txt' dlm='09'x dsd firstobs=6;
input id nbmiss x1 x2 x3 x4;
run;
不幸的是,该文件不能很好地自动确定名称(否则您可以这样做)。DBMS = DLM没有namerow
选择告诉它从何处拾取名称的选项,因此您需要对文件进行预处理以删除多余的行。欢迎您作为一个单独的问题提出如何执行此操作,但这并不比上面的“简单”(尽管它可能“更好”)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句