说我有以下数据:
Ad_Code Employers State City
246 McDonald CA Los Angeles
345 Mcdonald CA Los Angeles
4547 Mcdonald CA Los Angeles
4563 TJMax CA SanFran
5475 TJMax CA SanFran
23 TJMax CA SanFran
6 BestBuy CA SanFran
66747 BestBUy CA SanFran
7 Walmart CA Los Angeles
71 Walmart CA Lost Angeles
现在,我想创建一个计划,该计划将在州内以及每个州的每个城市展示大多数广告的前2名雇主。例如,对于洛杉矶来说,前2名雇主将是麦当劳和沃尔玛,而对于San Fran来说,它将是TJMax和Best Buy。而对于整个加利福尼亚州来说,前两名雇主将是TJMax和BestBuy。我的问题的另一部分是创造一种" count"来自AD_Code的方法。因此,我的excel表格(每个城市的每张表格,然后是每个州)将如下所示:
表1(state_CA)
Employer Count
TJMAX 3
BestBuy 3
表2(City_LA)
City Employer Count
LA McDonald 3
LA Walmart 2
表3(City_SF)
City Employer Count
SF TJMAX 3
SF BestBuy 2
另外,如何从Ad_code获取计数?有没有办法计算值在AD_code列中显示的时间,然后为其赋值1,然后将Ad_code中显示的所有值加起来并将其放在名为Count的新列标题下?我将如何完成这项任务?任何帮助将不胜感激。
答案 0 :(得分:2)
我接近这个的一般方式:
PROC MEANS
,使用两个分组变量的class
语句,以及type
语句定义您想要的那些分组变量的组合类型(听起来只是一种方式) ,所以你甚至可以使用ways=1
)。将数据集输出到所需的统计数据。
使用数据步骤或proc rank
来计算排名,并只保存您想要的排名(所以rank le 2
或某些此类排名)。
获取输出数据集并使用带有proc export
子句的where
将其导出,或者如果要编写许多导出,请使用数据驱动方法生成对运行的宏的宏调用你的proc出口给你。为此目的搜索“数据驱动编程SAS”。