楼主: derricksi
1547 1

请教各位sas大神如何计算audit tenure,我写的程序在某些观测上会出错。多谢了 [推广有奖]

  • 0关注
  • 1粉丝

讲师

10%

还不是VIP/贵宾

-

威望
0
论坛币
629 个
通用积分
3.3610
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
45799 点
帖子
84
精华
0
在线时间
712 小时
注册时间
2012-10-26
最后登录
2024-9-14

楼主
derricksi 学生认证  发表于 2015-3-4 17:48:05 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币

举例:

Stkcd   year    audi1    audi1tenure

000001  1999    A          1

000001  2000    A          2

000001  2001    A          3

000001  2002    B          1

000001  2003    B          2

000001  2004    C          1

000001   2005    A         1  

(计算连续审计,虽然A第四次出现,但是不连续,所以2005Atenure1 而不是4)


我用的程序:

我在网上找的程序,自己改了改,发现大部分结果是对的,但是也有些是错误的。

/*calculate audi1 tenure*/

proc sort data =fin_audit; /* sort the databy firm and year (needed for next data step) */

by stkcd year;

run;

data fin_audit;/* compute tenure; assumingthere is a variable called 'audi1' to identify audi1*/

set fin_audit;

retain audi1tenure prev_audi1; /* willremember the values while processing the rows */

by stkcd;

if first.stkcd then prev_audi = audi1; /*set prev_audi for first record of each stkcd */

if prev_audi1 ne audi1 then audi1tenure = 0;/* audi1 changed: reset tenure */

audi1tenure = audi1tenure + 1;

prev_audi1 = audi1;  /* update prev_firm */


run;

请各位大神指教,或者有什么更好的方法,请推荐。谢谢。


二维码

扫码加我 拉你入群

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

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

关键词:Tenure Audit Audi AUD ten 程序 如何

1.jpg (80.65 KB)

1.jpg

沙发
天穹下 发表于 2015-3-4 19:27:46
data m;
input stkcd$ year auditor$;
cards;
000001 1999 A
000001 2000 A
000001 2001 A
000001 2002 B
000001 2003 B
000001 2004 C
000001 2005 A
;
proc sort data=m;
by stkcd year auditor;
run;
data m;
set m;
if auditor='A' then x=1;
if auditor='B' then x=2;
if auditor='C' then x=3;
y=lag(x);
run;
data m;
set m;
if x-y ne 0 then n=0;
n+1;
drop x y;
run;

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

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