我有以下原始数据
1,,35,000
2,100,45,000
并且需要数据集中的以下内容
1 . 35000
2 100 45000
这将需要 dsd 选项和使用逗号。提供信息。
如何执行此操作?
我有以下原始数据
1,,35,000
2,100,45,000
并且需要数据集中的以下内容
1 . 35000
2 100 45000
这将需要 dsd 选项和使用逗号。提供信息。
如何执行此操作?
DSD 与此无关 - DSD 涉及输入,例如 1,,"35,000" 2,100,"45,000"
如果这就是您所拥有的,那么您可以使用 : 运算符将其与逗号信息一起读入。
data test;
infile datalines dlm=',' dsd;
input id
num
dollar :comma8.;
datalines;
1,,"35,000"
2,100,"45,000"
;;;;
run;
如果字段周围没有引号,那么您将需要以某种方式对其进行解析。下面是一种解决方案,只要带逗号的字段是最后一个字段,它就可以工作。
data test;
infile datalines dlm=',' dsd;
input @;
if countc(_infile_,',') =3 then do;
_commapos = findc(_infile_,',',-1*length(_infile_));
_infile_ = substr(_infile_,1,_commapos-1)||substr(_infile_,_commapos+1);
end;
input id
num
dollar ;
put _all_;
datalines;
1,,35,000
2,100,45,000
;;;;
run;
如果您的潜力所在的领域是一致的领域,但不是第一个领域,您可以修改上述解决方案来纠正它。如果它可能涉及多个领域,那么您需要解决的问题要困难得多。