全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
2552 7
2007-11-06

有一个问题想请教一下:

现在有海量的数据,例如数据格式是这样的

序号  账户    存款时间     存/取款金额  

1       小王    20070216    1800    

2      小郑     20070216     1750  

3       小王    20070318      26500

现在我要对每一个账户进行归类统计,最好每一张账户可以建立一个表,那么该如何进行操作谢谢。

本人愿意重金酬谢

二维码

扫码加我 拉你入群

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

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

全部回复
2007-11-6 19:52:00

data a;
input id name$ time yymmdd8. cash;
cards;
1 xiaowang 20070216 1800
2 xiaozheng 20070216 1750
3 xiaowang 20070318 26500
;
run;
proc sql;
create table b as
select distinct name from a;
quit;
data b;
set b;
n=_n_;
run;
proc sql noprint;
create table a as
select a.*,b.n from a ,b where a.name=b.name;
quit;
proc sql noprint;
select count(distinct name) into:num from a;
quit;
%macro luijb;
%do i=1 %to #
data a&i;
set a;
drop n;
if n=&i then output a&i;
run;
%end;
%mend luijb;
%luijb;

需要怎么汇总可以接着在macro里接着写啊!~

二维码

扫码加我 拉你入群

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

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

2007-11-7 08:17:00

后来又想了一下,这样似乎更简单些:

data a;
input id name$ time yymmdd8. cash;
cards;
1 xiaowang 20070216 1800
2 xiaozheng 20070216 1750
3 xiaowang 20070318 26500
;
run;
proc sort data=a;
by name;
run;

data a;
set a;
by name;
if first.name then n+1;
run;

proc sql noprint;
select count(distinct name) into:num from a;
quit;
%macro luijb;
%do i=1 %to #
data a&i;
set a;
drop n;
if n=&i then output a&i;
run;
%end;
%mend luijb;
%luijb;

二维码

扫码加我 拉你入群

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

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

2007-11-7 08:59:00
LZ赶快给钱吧, 哈哈。
select count(distinct name) into:num from a; 这个好强啊 。
二维码

扫码加我 拉你入群

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

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

2007-11-20 04:08:00
[em01][em01][em01]
二维码

扫码加我 拉你入群

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

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

2007-11-20 06:55:00

 

 

data temp;
 input name $  withdraw  save ;
 cards;
Xiaowang 300 500
XiaoLi 100 200
XiaoZhang 400 500
XiaoLi 400 30
XiaoZhang 380 230
XiaoLi 440 30
;
run;

/*agrregate the dataset based on name*/
proc univariate data = temp noprint;
 class name;
 var withdraw;
 output out = name;
run;

/*save each customer name into marcro*/
data _null_;
 set name;
 suffix=put(_n_,5.);
 call symput (cats("name",suffix), trim(name));
 call symput ("total", _n_);
run;

/*create dataset for each customer*/
%macro createdata();
 %do i = 1 %to &total;
 data &&name&i;
  set temp;
  if name ne "&&name&i" then delete;
 run;
 %end;

%mend;

%createdata();

[此贴子已经被作者于2007-11-20 6:59:39编辑过]

二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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