我试图找到一种方法来为没有不同标识符的子组的行选择频率计数(好吧,我猜不同的标识符是状态的组合)。考虑样本数据:
data have;
input Series $ Game Name $ Points;
datalines;
A 1 LeBron 2
A 1 LeBron 3
A 1 LeBron 2
A 1 LeBron 2
A 2 LeBron 2
A 2 LeBron 2
A 2 LeBron 3
A 3 LeBron 2
;
run;
这里的每一行都是勒布朗在系列赛中进行的一次射门。我想要系列/游戏摘要,并计算拍摄数量。像这样:
Series Game Name Freq Sum 2pt 3pt
A 1 LeBron 4 9 3 1
A 2 LeBron 3 7 2 1
A 3 LeBron 1 2 1 0
我必须在这里使用Proc SQL,而不是proc意味着因为我从多个表中提取数据。此外,我将有几千个"系列"以及更多"游戏"和"姓名"所以请保持回答一般这是我的拥有:
proc sql;
create table want as
select Series,
Game,
Name,
sum(points) as totalpoints
from have
group by 1,2,3;
run;
感谢。
PYLL
答案 0 :(得分:1)
没有特别的理由你不能使用PROC MEANS
从多个表中提取 - 你总是可以创建一个视图(在SQL或数据步骤中)。但无论如何,
proc sql;
create table want as
select Series,
Game,
Name,
sum(points) as totalpoints,
count(points) as numbershotsmade
from have
group by 1,2,3;
run;
你也可以使用同样的n
函数。
count(points)
将计算非零点值;即使点为空,count(1)
也会计算总行数。