楼主: mrwh18
2501 18

[原创博文] 请教一个sas计算的问题 [推广有奖]

  • 0关注
  • 0粉丝

小学生

57%

还不是VIP/贵宾

-

威望
0
论坛币
730 个
通用积分
0
学术水平
0 点
热心指数
2 点
信用等级
0 点
经验
345 点
帖子
6
精华
0
在线时间
9 小时
注册时间
2010-5-14
最后登录
2016-6-4

楼主
mrwh18 发表于 2012-9-28 10:07:54 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
下面的数据,如果需要把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

不胜感激!
二维码

扫码加我 拉你入群

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

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

关键词:amount date 原始数据 TEAM 不胜感激 不胜感激 amount

回帖推荐

sunset1986 发表于2楼  查看完整内容

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;

本帖被以下文库推荐

沙发
sunset1986 发表于 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;
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
pobel + 1 + 1 + 1 我很赞同

总评分: 学术水平 + 1  热心指数 + 1  信用等级 + 1   查看全部评分

An honest tale speeds best being plainly told.
Cheers!

藤椅
∮E※sil|♂ 发表于 2012-9-28 10:20:38
我也想试试....

板凳
mrwh18 发表于 2012-9-28 10:27:13
非常非常感谢!

报纸
liuliqingdong 发表于 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;

不胜感激

地板
sunset1986 发表于 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 秒
An honest tale speeds best being plainly told.
Cheers!

7
sunset1986 发表于 2012-9-28 11:23:01
liuliqingdong 发表于 2012-9-28 10:32
高人,求助。
因为手头没有SAS软件,能否帮我run一个程序。估计samlpe size大小。谢谢。程序如下。
tit ...
Obs    rmsea0    rmseaa    powd    alpha     d    minn      powa

   1      0.05      0.08       .      0.05    15     100    0.20603
An honest tale speeds best being plainly told.
Cheers!

8
sunset1986 发表于 2012-9-28 11:24:26
liuliqingdong 发表于 2012-9-28 10:32
高人,求助。
因为手头没有SAS软件,能否帮我run一个程序。估计samlpe size大小。谢谢。程序如下。
tit ...
您这里是不是缺少run
另外,需要继续检查code
An honest tale speeds best being plainly told.
Cheers!

9
liuliqingdong 发表于 2012-9-28 11:29:55
sunset1986 发表于 2012-9-28 11:23
Obs    rmsea0    rmseaa    powd    alpha     d    minn      powa

   1      0.05      0.08      ...
非常感谢。但我似乎少了powe=.80;*desired power; 可否再用如下程序,run一次。非常感谢。
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;
powe=.80;*desired power;
*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;

10
liuliqingdong 发表于 2012-9-28 11:32:36
sunset1986 发表于 2012-9-28 11:24
您这里是不是缺少run
另外,需要继续检查code
缺了desired Power, 漏掉了。能否加你好友。qq40731237.

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-26 17:16