SAS中文论坛

标题: 请教:如何按照不同对数据进行操作 [打印本页]

作者: shiyiming    时间: 2008-3-27 00:31
标题: 请教:如何按照不同对数据进行操作
如果用宏来写该怎么弄?
谢谢

例如:
日期            帐号    股票代码        成交金额      买卖 方向  
20070203            a8889        600019               30000                  sell
20070203            a8889        600019               42000                  buy
20070203            a8887        600019               30000                  sell
20070203            a8887        600019               30000                  sell
20070203            a8887        600019               30000                  sell
20070205            a8887        600019               30000                  sell
20070205            a8889        600019               30000                  sell
20070207            a8889        600019               30000                  sell
20070209            a8889        600019               30000                  sell
20070206            a8889        600019               30000                  sell
20070206            a8889        600019               30000                  sell


分别计算不同的交易日期不同的帐户每天的成交情况

谢谢大家了
作者: shiyiming    时间: 2008-3-28 16:32
标题: Re: 请教:如何按照不同对数据进行操作
不太清楚你的 objective, 可以詳盡些嗎?

是想用 proc mean or proc summary 之類的計算嗎?
作者: shiyiming    时间: 2008-4-1 11:26
标题: Re: 请教:如何按照不同对数据进行操作
似乎是个分组求和的问题。
date          countID ID      dail   bs
日期 帐号 股票代码 成交金额 买卖 方向
20070203 a8889 600019 30000 sell
20070203 a8889 600019 42000 buy
20070203 a8887 600019 30000 sell
20070203 a8887 600019 30000 sell
20070203 a8887 600019 30000 sell
20070205 a8887 600019 30000 sell
20070205 a8889 600019 30000 sell
20070207 a8889 600019 30000 sell
20070209 a8889 600019 30000 sell
20070206 a8889 600019 30000 sell
20070206 a8889 600019 30000 sell

proc sort data=a;by date countid;run;
proc means data=a sum; var dail;by date countid;run;
作者: shiyiming    时间: 2008-4-1 15:46
标题: Re: 请教:如何按照不同对数据进行操作
我想楼主应该是这个意思!~生成数据集

data test;
input date yymmdd8. account$ code bv bs$;
cards;
20070203 a8889 600019 30000 sell
20070203 a8889 600019 42000 buy
20070203 a8887 600019 30000 sell
20070203 a8887 600019 30000 sell
20070203 a8887 600019 30000 sell
20070205 a8887 600019 30000 sell
20070205 a8889 600019 30000 sell
20070207 a8889 600019 30000 sell
20070209 a8889 600019 30000 sell
20070206 a8889 600019 30000 sell
20070206 a8889 600019 30000 sell
;
run;
proc sort data=test;
by date account;
run;
proc means sum;
var bv;
by date account;
output out=a sum=sum_bv;
run;
data result;
set a(rename=(sum_bv=sum));
keep date account sum;
format date yymmdd10.;
run;




欢迎光临 SAS中文论坛 (https://mysas.net/forum/) Powered by Discuz! X3.2