SAS代码:用右侧第一个非空值填充Excel空值
/* 导入Excel文件 */ proc import datafile = 'D:\data\example.xlsx' out = example dbms = xlsx replace; sheet = 'Sheet1'; run;
/* 用右侧第一个不为空的值取代空值 */ data example_filled; set example;
/* 逐行遍历每个变量 */
array vars(*) _numeric_;
do i = 1 to dim(vars);
/* 如果变量的值为空,则用右侧第一个不为空的值取代 */
if vars(i) = . then do;
do j = i+1 to dim(vars);
if not missing(vars(j)) then do;
vars(i) = vars(j);
leave;
end;
end;
end;
end;
/* 输出到新的Excel文件 */
proc export
data = example_filled
outfile = 'D:\data\example_filled.xlsx'
dbms = xlsx
replace;
sheet = 'Sheet1';
run;
/* 输出SAS代码 */
%put /* 用右侧第一个不为空的值取代空值 */;
%put data example_filled;
%put ' set example;';
%put ' array vars(*) _numeric_;';
%put ' do i = 1 to dim(vars);';
%put ' if vars(i) = . then do;';
%put ' do j = i+1 to dim(vars);';
%put ' if not missing(vars(j)) then do;';
%put ' vars(i) = vars(j);';
%put ' leave;';
%put ' end;';
%put ' end;';
%put ' end;';
%put ' end;';
%put ' proc export';
%put ' data = example_filled';
%put ' outfile = 'D:\data\example_filled.xlsx';';
%put ' dbms = xlsx';
%put ' replace;';
%put ' sheet = 'Sheet1';';
%put ' run;';
原文地址: https://www.cveoy.top/t/topic/mY25 著作权归作者所有。请勿转载和采集!