SAS跨列计数关键字

时间:2017-05-30 09:48:31

标签: sas

我有关键字列表;公司,房地产,竞争,贸易,争议

我希望能够计算这些关键字在列practice_area1-Practice_area10之间出现的次数。因此,我想扫描10列并创建新列。每个新列将代表每个关键字(上方)和计数值,例如公司4

一旦这个语句运行了,我们就有了新的列,我想创建一个新的变量“Practice Group”,它填充了我们刚创建的新变量的最大数量。下面的数据集是数据外观的示例:

enter image description here

请有人能就这方面的最佳方法向我提出一些建议吗?

非常感谢

克里斯

1 个答案:

答案 0 :(得分:0)

您需要做的就是对要检查的所有列使用makean数组。然后使用count函数循环遍历每个列以查找要检查的单词,并在循环中添加计数。 下面的代码是检查三列和三个值。您可以根据需要将此代码应用于任意数量的列。

data have(drop= i);
col1 = 'CORPORATE, REAL ESTATE, REAL ESTATE';
col2= 'CORPORATE, CORPORATE, TRADE, TRADE, TRADE, REAL ESTATE';
col3= 'TRADE, TRADE, DISPUTE,REAL ESTATE';
array col[*]  col1 - col3;
realestate=0;/*starting with zero*/
trade=0;
corporate= 0;
do i = 1 to 3;
realestate =realestate+count( col(i), 'REAL ESTATE');/* adding through the loop*/
TRADE =trade+count( col(i), 'TRADE');
CORPORATE= corporate+count( col(i), 'CORPORATE');
end;
run;