嘿伙计们提前感谢您的帮助。
我正在尝试一次做几件事。
详细说明,我在表A中有一个基于成员的列(来自1,2,3,...,500)。我有一个我要创建的新表,表B,应该有一个特定的成员编号(5,6,8等)。例如,第一行“公式”下的相应值应该是表A中1到5之间的值的总和。非常感谢!
表A:
Members Value
1 3.4
2 4.8
3 5.1
4 6.2
5 3.8
6 2.1
表B:
Members Value
3 13.3 (3.4 + 4.8 + 5.1)
4 19.5 (3.4 + 4.8 + 5.1 + 6.2)
6 25.4 (3.4 + 4.8 + 5.1 + 6.2 + 3.8 + 2.1)
这是我到目前为止的代码:
data simulation_tracking;
call streaminit(12345);
do Member_Count = 5,6,8,10,12,15,20,25,30,40,50,60,70,80,90,100,125,150,175,200,250,300,400,500;
Formulas = ;
proc sql;
create table claims.simulation_tracking as
select Member_Count,Formulas
from simulation_tracking;
run;
答案 0 :(得分:0)
如果这是一个运行总计,则使用RETAIN。 我使用sum函数,它将与sum运算符相比忽略缺失值。
data want;
set have;
retain running_total;
running_total= sum(running_total, value);
if member_ID in (5,6,8,10,12,15,20,25,30,40,50,60,70,80,90,100,125,150,175,200,250,300,400,500) then output;
run;
答案 1 :(得分:0)
data simulation_tracking;
Member_Count = {5,6,8,10,12,15,20,25,30,40,50,60,70,80,90,100,125,150,175,200,250,300,400,500}
set claims.simulation;
retain running_total running_total = sum(running_total, Member_Count);
run;
答案 2 :(得分:0)
首先让我们将您的示例数据转换为实际的SAS数据集。
data have ;
input member value;
cards;
1 3.4
2 4.8
3 5.1
4 6.2
5 3.8
6 2.1
;
我们可以使用SUM语句生成VALUE变量的运行总和。 然后,您可以使用要控制的成员ID列表是否将观察结果写入输出数据集。
data want ;
set have ;
running_total + value;
if member in (3 4 6) then output;
run;
这将创建此表。
running_
Obs member value total
1 3 5.1 13.3
2 4 6.2 19.5
3 6 2.1 25.4