我的原始数据文件是一个包含10列的简单逗号分隔文件。我知道必须有一种方法只使用missover
或ls
导入3列?
当然,我可以导入所有文件并删除不需要的变量,但是,我该如何使用
infile missover=3
OR
infile ls=3
答案 0 :(得分:1)
不,我想SAS必须读取分隔文件中的所有数据 - 它必须从头到尾读取每个字节到1)处理列分隔符,以及2)确定obs分隔符(CR& LF字符) ) - 删除不需要的列不会有很大的开销。
答案 1 :(得分:1)
如果您只需要读取前n个字段,则可以在输入语句中列出这些字段。
如果您需要的列更靠右侧,则需要在输入中列出所需的列,然后列出您需要的列。直到您需要的最后一列。
MISSOVER
不接受=n
并且它告诉sas转到下一条记录并开始读入输入语句的第一个变量,如果它找不到足够的列而不查找以下记录中的最后一列。
e.g
file is like this
a1,b1,c1
a2,b2,c3,d2
data test;
infile "myfile" dlm="," dsd /*2 cosecutive delimiters are not considered as one*/ missover;
input
a $
b $
c $
d $
;
run;
will result in a dataset:
a b c d
a1 b1 c1
a2 b2 c2 d2
data test;
infile "myfile" dlm="," dsd /*2 cosecutive delimiters are not considered as one*/ ;
input
a $
b $
c $
d $
;
run;
will result in a dataset:
a b c d
a1 b1 c1 a2