需要根据If条件

时间:2018-05-21 18:29:16

标签: sas

我有一个sas数据集,所以要检查该值并且column_position不存在然后在数据集中添加obs,否则如果column的值不存在且column_position相同则替换col_position(例如在第15行有一个观察所以现在我要为第15行添加新值,然后原来的第15行进入第16行,第16行进入第17行......等等( n +1 r滞后函数不确定)  我正在尝试这个,但工作不正常,请帮助我

data test;
input value $ data_type $ length col_pos;
datalines;
harry varchar 100 1
henry number 100 2
homry varchar 100 3
;

%macro add_column(value,data_type,length,col_pos);

data _null_;
set test;
if value="&value" then call symput('col_name',1)
else call symput('col_name',2)
if col_pos="&col_pos" then call symput ('col_pos',1)
else call symput('col_pos,2)
run;

if &col_name=2 and &col_pos=2 then;
%do;
  data test;
set test;
value="&value";
data_type="&data_type";
length="&length";
col_pos="&col_pos";
output;
run;
%end;
%mend;
%add_column(alex,varchar,100,4);

假设值已更改且col_pos相同 例如,我需要替换第二个col_pos和第二个col_pos从上面的测试数据集应该转到第三个 %add_column(JOE,VARCHAR,100,2); 如果& col_name = 2(因为值不同)和& col_pos = 1(col_pos相同,即2)则; (我试着写这个,但没有奏效)  ' 2' col_pos是相同的

请帮我解决这个问题

0 个答案:

没有答案