全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
2449 18
2012-09-28
下面的数据,如果需要把ACCT相同的列合并,把amount加总,代码该怎么写呢?

原始数据:

ACCT

Date

Amount

10001

20120101

130

10001

20120201

140

10001

20120301

124

10002

20120101

130

10002

20120201

120



期望的结果:
ACCT    Amount
10001   130+140+124=394
10002   130+120=250

不胜感激!
二维码

扫码加我 拉你入群

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

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

全部回复
2012-9-28 10:16:28
data test;
        input Acct $ Date Amount;
        cards;
        10001 201201 130
        10001 201201 140
        10001 201301 124
        10002 201201 130
        10002 201201 120
        ;
run;

data test1 (drop=Amount);
    set test;
        by acct;
        if first.acct then AccAmt=Amount;
        else AccAmt+Amount;
                if last.acct;
run;
二维码

扫码加我 拉你入群

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

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

2012-9-28 10:20:38
我也想试试....
二维码

扫码加我 拉你入群

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

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

2012-9-28 10:27:13
非常非常感谢!
二维码

扫码加我 拉你入群

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

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

2012-9-28 10:32:42
sunset1986 发表于 2012-9-28 10:16
data test;
        input Acct $ Date Amount;
        cards;
高人,求助。
因为手头没有SAS软件,能否帮我run一个程序。估计samlpe size大小。谢谢。程序如下。
title"Computation of min sample size for test of fit";
data one;
rmsea0=.05;*null hyp rmsea;
rmseaa=.08;*alt hyp rmsea;
d=15;*degrees of freedom;
alpha=.05;*alpha level;
*initialize values;
powa=0.0;
n=0;
*begin loop for finding initial level of n;
do until (powa>powd);
n+100;
ncp0=(n-1)*d*rmsea0**2;
ncpa=(n-1)*d*rmseaa**2;
*compute power;
if rmsea0>rmseaa then do;
cval=cinv(alpha,d,ncp0);
powa=probchi(cval,d,ncpa);
end;
if rmsea0<rmseaa then do;
cval=cinv(1-alpha,d,ncp0);
powa=1-probchi(cval,d,ncpa);
end;
end;
*begin loop for interval halving;
dir=-1;
newn=n;
intv=200;
powdiff=powa-powd;
do until(powdiff<.001);
intv=intv*.5;
*compute new power;
ncp0=(newn-1)*d*rmsea0**2;
ncpa=(newn-1)*d*rmseaa**2;
*compute power;
if rmsea0>rmseaa then do;
cval=cinv(alpha,d,ncp0);
powa=probchi(cval,d,ncpa);
end;
if rmsea0<rmseaa then do;
cval=cinv(1-alpha,d,ncp0);
powa=1-probchi(cval,d,ncpa);
end;
powdiff=abs(powa-powd);
if powa<powd then dir=1;else dir=-1;
end;
minn=newn;
output;
proc print data=one;
var rmsea0 rmseaa powd alpha d minn powa; run;

不胜感激
二维码

扫码加我 拉你入群

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

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

2012-9-28 11:20:52
liuliqingdong 发表于 2012-9-28 10:32
高人,求助。
因为手头没有SAS软件,能否帮我run一个程序。估计samlpe size大小。谢谢。程序如下。
tit ...
84   data one;
85   rmsea0=.05;*null hyp rmsea;
86   rmseaa=.08;*alt hyp rmsea;
87   d=15;*degrees of freedom;
88   alpha=.05;*alpha level;
89   *initialize values;
90   powa=0.0;
91   n=0;
92   *begin loop for finding initial level of n;
93   do until (powa>powd);
94   n+100;
95   ncp0=(n-1)*d*rmsea0**2;
96   ncpa=(n-1)*d*rmseaa**2;
97   *compute power;
98   if rmsea0>rmseaa then do;
99   cval=cinv(alpha,d,ncp0);
100  powa=probchi(cval,d,ncpa);
101  end;
102  if rmsea0<rmseaa then do;
103  cval=cinv(1-alpha,d,ncp0);
104  powa=1-probchi(cval,d,ncpa);
105  end;
106  end;
107  *begin loop for interval halving;
108  dir=-1;
109  newn=n;
110  intv=200;
111  powdiff=powa-powd;
112  do until(powdiff<.001);
113  intv=intv*.5;
114  *compute new power;
115  ncp0=(newn-1)*d*rmsea0**2;
116  ncpa=(newn-1)*d*rmseaa**2;
117  *compute power;
118  if rmsea0>rmseaa then do;
119  cval=cinv(alpha,d,ncp0);
120  powa=probchi(cval,d,ncpa);
121  end;
122  if rmsea0<rmseaa then do;
123  cval=cinv(1-alpha,d,ncp0);
124  powa=1-probchi(cval,d,ncpa);
125  end;
126  powdiff=abs(powa-powd);
127  if powa<powd then dir=1;else dir=-1;
128  end;
129  minn=newn;
130  output;
131  run;

NOTE: 变量 powd 未初始化。
NOTE: 缺失值的生成是对缺失值执行操作的结果。
      指定每个位置的方式: (次数)(行:列)。
      1,位置: 111:13。   1,位置: 126:9。    1,位置: 126:17。
NOTE: 数据集 WORK.ONE 有 1 个观测和 15 个变量。
NOTE: “DATA 语句”所用时间(总处理时间):
     实际时间          0.04 秒
   CPU 时间          0.04 秒
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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