全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
10742 6
2016-03-01
现有一个数据集,含变量A1、A2、A3。。。A36,且该组变量均为数值型变量。想增加3个新变量B1、B2、B3,分别统计每条观测中这几个变量取值小于3的变量个数、取值大于等于4小于7的变量个数、取值大于等于8的变量个数,数据量很大,实在是不知道用SAS该如何处理了,还请高手帮忙指点,不胜感激,谢谢了!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2016-3-1 17:49:02
比如有一条记录如下
A1 A2 A3 A4  A5  A6  A7  A8 A9   A10
1   1    2   1    4    2    7   8    1    11
则B1=6  B2=2  B3=2
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2016-3-1 19:42:11
顶起
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2016-3-1 22:36:04
*try the macro as follow;
%macro a;
data a;
   set a;
      %do i=1 %to 36;
             if a&i<3 then na&i=1;
                 else if a&i<8 then nb&i=1;
                 else nc&i=1;
      %end;
          b1=sum(of na1-na36);
          b2=sum(of nb1-nb36);
          b3=sum(of nc1-nc36);
          drop na1-na36 nb1-nb36 nc1-nc36;
run;
%mend;
%a;
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2016-3-2 03:20:06
dogmamongo 发表于 2016-3-1 22:36
*try the macro as follow;
%macro a;
data a;
good!

or Array:
b1=0;
b2=0;
b3=0;
do i= 1 to 36;
b1 + (a[I]<3);
b2 + (3<=a[I]<8);
b3 + (a[I]>=8);
end;


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2016-3-3 15:19:49
dogmamongo 发表于 2016-3-1 22:36
*try the macro as follow;
%macro a;
data a;
我将数字变量变成字符变量,然后再通过COUNTC与CATS结合的函数来做统计,走了弯路~平时用宏用的少,这个方法很受用,非常感谢您的指点
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群