可能是我遇到的最複雜的任務。 真的可以用您的幫助這裏...複雜任務,滯後和保留功能可能不夠好
比方說,我有一個數據集與此類似:
data have;
rk = 1;
version = 0;
treatment_ind = 1;
start_date_1 = "01jan2013"d;
end_date_1 = "01feb2013"d;
start_date_2 = "21jan2013"d;
end_date_2 = "18feb2013"d;
money_field = 32;
OUTPUT;
rk = 1;
version = 1;
treatment_ind = 1;
start_date_1 = "01feb2013"d;
end_date_1 = "01apr2013"d;
start_date_2 = "3jan2013"d;
end_date_2 = "9feb2013"d;
money_field = 1;
OUTPUT;
rk = 1;
version = 2;
treatment_ind = 2;
start_date_1 = "01jan2013"d;
end_date_1 = "01feb2013"d;
start_date_2 = "21jan2013"d;
end_date_2 = "18feb2013"d;
money_field = 65;
OUTPUT;
rk = 1;
version = 3;
treatment_ind = 3;
start_date_1 = "01jan2013"d;
end_date_1 = "01jun2013"d;
start_date_2 = "21jul2013"d;
end_date_2 = "18aug2013"d;
money_field = 6;
OUTPUT;
rk = 1;
version = 0;
treatment_ind = 7;
start_date_1 = "11mar2013"d;
end_date_1 = "22may2013"d;
start_date_2 = "21feb2013"d;
end_date_2 = "24feb2013"d;
money_field = 34;
OUTPUT;
FORMAT start_date_1 end_date_1 start_date_2 end_date_2 DATE9.;
run;
如果treatment_ind = 1 - 這是一個容易。一個普通的例子,所有的計算對我來說都很好。
的棘手的有如下:
如果treatment_ind = 2, 我需要做的幾件事情:
首先,在容易的任務:更新現有行的幾個字段(其中treatment_ind = 2)
每個rk擁有某處treatment_ind = 2,應以某種方式行事。
如果treatment_ind = 3,
首先,就越容易的任務:在現有行更新幾個字段(treatment_ind = 3中)
每個RK擁有某處treatment_ind = 3,應該以某種方式行事。不同的方式。
等等.... 我有采取行動以不同的方式,而不僅僅是當前行, 但每一行,由RK,擁有該指標的地方...... 8個不同的指標
其中一些實際上取消了其他指標的行爲。 例如, 如果某個RK的某處Indicator_ind = 7, 比treatment_ind = 3不應計算。
當這一切完成後, 我應該使用保留,以便從一行到另一個累積數...
主要問題是, 我無法上傳我的工作表來解釋好,我面臨的形勢, 和數據集我沒有上傳是非常簡單的,並不代表這項任務的複雜性......
如果例如, indicator_ind = 1,則日期之間的差異應該是根據第一組日期。 其他指標應按第二組計算。
同去很多很多其他的計算...
我知道這將是艱難的恐怕要回答這個...
但是,一開始,我要請方向... 因爲保留/滯後獨自不會幫助我,恐怕... ...
請勿在美國公開 –
下一次請不要把CAPS-LOCK放在整個標題上。如果您至少可以上傳您的數據集的樣本,則會更清楚。乾杯 –