楼主: qwqwqw
3849 11

[问答] 一个长得比较奇怪的txt文件输入 [推广有奖]

  • 1关注
  • 1粉丝

不知居士

已卖:19份资源

讲师

72%

还不是VIP/贵宾

-

威望
0
论坛币
98533 个
通用积分
7.3500
学术水平
5 点
热心指数
14 点
信用等级
3 点
经验
9920 点
帖子
323
精华
0
在线时间
842 小时
注册时间
2005-2-14
最后登录
2024-6-22

楼主
qwqwqw 发表于 2011-1-24 00:11:25 |AI写论文
50论坛币
下面有具体的样本,我以前没遇过这样的,请教一下该怎么处理。因为有将近100万个观察值,所以效率还是要考虑的。

最后在SAS输出的数据要有编号,公司名字,类别(director or officer),名字,年龄,头衔,时间,和酬劳。其中编号,公司名字和类别都不是很规范的在同一行里面。附件里面有一个样本数据。如果我没有说清楚的,我再解释。非常感谢!!

  1 of 11441 Directors and Officers
  A & A INTERNATIONAL INDUSTRIES INC
  OFFICERS (NAME/AGE/TITLE/REMUNERATION): (SOURCE: 10K)
  CAMPORESE, GIOVANNI/ NA/  CHIEF EXECUTIVE OFFICER, PRESIDENT (20-F 06-30-96) /
$31,200
  BROWN, LORNE/ NA/  CONTROLLER (20-F 06-30-96) / $46,008
  CAMPORESE, JULIE/ NA/  SECRETARY (20-F 06-30-96) / $21,141
  DIRECTORS (NAME/AGE/TITLE/REMUNERATION): (SOURCE PROXY NA    )
  CAMPORESE, GIOVANNI/ NA/  CHIEF EXECUTIVE OFFICER, PRESIDENT (20-F 06-30-96) /
$31,200
  CAMPORESE, MONICA/ NA/ (20-F 06-30-96) / $10,624
  BROWN, LORNE/ NA/  CONTROLLER (20-F 06-30-96) / $46,008
  BORCHERS, IISE/ NA/ (20-F 06-30-96) / NA
  OLSEN, LAURENCE/ NA/ (20-F 06-30-96) / NA
  SANFORD, JAMES/ NA/ (20-F 06-30-96) / NA

  2 of 11441 Directors and Officers
  A C MOORE ARTS & CRAFTS INC
  OFFICERS (NAME/AGE/TITLE/REMUNERATION): (SOURCE: 10K)
  PARKER, JOHN E./ 56/  PRESIDENT, CHIEF EXECUTIVE OFFICER / NA
  RAMBO, REX A./ 56/  EXECUTIVE VICE PRESIDENT, CHIEF OPERATING OFFICER / NA
  PARKER, PATRICIA A./ 56/  EXECUTIVE VICE PRESIDENT / NA
  GORDON, LESLIE H./ 54/  SENIOR VICE PRESIDENT, TREASURER, CHIEF FINANCIAL OFFICER /
NA
  PARKER-VANDENBERG, JANET/ 35/  SENIOR VICE PRESIDENT / NA
  DIRECTORS (NAME/AGE/TITLE/REMUNERATION): (SOURCE PROXY NA    )
  PARKER, JOHN E./ 56/  PRESIDENT, CHIEF EXECUTIVE OFFICER (10-K 12-31-97) /NA
  PARKER, PATRICIA A./ 55/  EXECUTIVE VICE PRESIDENT (10-K 12-31-97) / NA

  3 of 11441 Directors and Officers
  A C S ELECTRONICS LTD
  OFFICERS (NAME/AGE/TITLE/REMUNERATION): (SOURCE: 10K)
  KIRSHENBOIM, ZE'EV/ 44/  CHAIRMAN OF THE BOARD, PRESIDENT, CHIEF EXECUTIVE OFFICER,
MANAGING DIRECTOR / NA
  BEN-BLIEZER, AMATSIA/ 44/  EXECUTIVE OFFICER, CHIEF FINANCIAL OFFICER, VICE
PRESIDENT, MANAGING DIRECTOR / NA
  KRAIZER, MARK/ 37/  MANAGER / NA
  DIRECTORS (NAME/AGE/TITLE/REMUNERATION): (SOURCE PROXY:) NA

  4 of 11441 Directors and Officers
  A EDWARDS BANK
  OFFICERS (NAME/AGE/TITLE/REMUNERATION): (SOURCE: 10K)
  DE CASTRO SPIKULA, SERGIO/ NA/  CHAIRMAN OF THE BOARD / NA
  ERGAS ERGAS, JACOB/ NA/  VICE CHAIRMAN OF THE BOARD / NA
  FEVRE DOMINGUEZ, GUSTAVO/ NA/  GENERAL MANAGER / NA
  AMUNATEGHI COUSINO, DOMINGO/ NA/  MANAGER / NA
  ERGAS ALVO, ISAAC/ NA/  MANAGER / NA
  GUZMAN HERRERA, JULIO/ NA/  MANAGER / NA
  MENCHACA OLIVARES, FERNANDO/ NA/  MANAGER / NA
  MORALES ARACENA, RICARDO/ NA/  MANAGER / NA
  ROJAS PRETER, NELSON/ NA/  MANAGER / NA
  SILVA ESCOBAR, GUIDO/ NA/  MANAGER / NA
  VILAJUANA RIGAU. JUAN ENRIQUE / NA/  MANAGER / NA
  VILLOUTA BENIMELIS, FERMAN/ NA/  MANAGER / NA
  DIRECTORS (NAME/AGE/TITLE/REMUNERATION): (SOURCE PROXY NA    )
  DE CASTRO SPIKULA, SERGIO/ NA/  CHAIRMAN OF THE BOARD  (20-F 12-31-96)/ NA
  ERGAS ERGAS, JACOB/ NA/  VICE CHAIRMAN OF THE BOARD  (20-F 12-31-96)/ NA
  MELNIK ISRAEL, SERGIO/ NA/  (20-F 12-31-96)/ NA
  CASANOVA DEMARCHI, MANUEL/ NA/  (20-F 12-31-96)/ NA
  ERGAS WEISNER, EDUARDO/ NA/  (20-F 12-31-96)/ NA
  EDWARDS DEL RIO, AGUSTIN/ NA/  (20-F 12-31-96)/ NA
  PRIETO BAFALLUY, ALFREDO/ NA/  (20-F 12-31-96)/ NA
  LARRAGUIBEL HOLMAN, VICTOR/ NA/  (20-F 12-31-96)/ NA
  ORTIZ QUIROGA, LUIS/ NA/  (20-F 12-31-96)/ NA
关键词:txt Remuneration Internation Electronics controller 文件 txt 输入

回帖推荐

elek.me 发表于2楼  查看完整内容

本帖被以下文库推荐

沙发
elek.me 发表于 2011-1-24 00:11:26
  1. data want;
  2.         infile "d:\sas\test.txt" truncover;
  3.         retain obs;
  4.         length name $50 company $100 category $20 age $5 title $100 salary $20;
  5.         retain company category;
  6.         input var $500. @;
  7.         if prxmatch("m/\d+ of 11441 Directors and Officers/",var) then do;
  8.                 obs=input(scan(var,1," "),best.);
  9.                 input / company $100.  @;
  10.         end;
  11.         else if var=" " then delete;
  12.         else if scan(var,1,"( ") in ("OFFICERS","DIRECTORS")then category=scan(var,1,"( ");
  13.         else do;
  14.                 if scan(var,4,"/")=" " then do;
  15.                         input / var2 $50. @;
  16.                         var=cats(var,var2);
  17.                 end;
  18.                 name=scan(var,1,"/");
  19.                 age=scan(var,2,"/");
  20.                 title=scan(var,3,"/(");
  21.                 salary=scan(var,4,"/");
  22.                 output;
  23.         end;
  24.         drop var var2;
  25. run;
复制代码
已有 1 人评分经验 学术水平 热心指数 收起 理由
peijiamei + 100 + 2 + 3 观点有启发

总评分: 经验 + 100  学术水平 + 2  热心指数 + 3   查看全部评分

我的博客: http://elek.me/sas
联系我: http://about.me/elek

藤椅
elek.me 发表于 2011-1-24 09:40:02
有点乱,楼主可以整理几条数据结果,比如
  1.   1 of 11441 Directors and Officers
  2.   A & A INTERNATIONAL INDUSTRIES INC

  3.   OFFICERS (NAME/AGE/TITLE/REMUNERATION): (SOURCE: 10K)
  4.   CAMPORESE, GIOVANNI/ NA/  CHIEF EXECUTIVE OFFICER, PRESIDENT (20-F 06-30-96) /
  5. $31,200
  6.   BROWN, LORNE/ NA/  CONTROLLER (20-F 06-30-96) / $46,008
  7.   CAMPORESE, JULIE/ NA/  SECRETARY (20-F 06-30-96) / $21,141

  8.   DIRECTORS (NAME/AGE/TITLE/REMUNERATION): (SOURCE PROXY NA    )
  9.   CAMPORESE, GIOVANNI/ NA/  CHIEF EXECUTIVE OFFICER, PRESIDENT (20-F 06-30-96) /
  10. $31,200
  11.   CAMPORESE, MONICA/ NA/ (20-F 06-30-96) / $10,624
  12.   BROWN, LORNE/ NA/  CONTROLLER (20-F 06-30-96) / $46,008
  13.   BORCHERS, IISE/ NA/ (20-F 06-30-96) / NA
  14.   OLSEN, LAURENCE/ NA/ (20-F 06-30-96) / NA
  15.   SANFORD, JAMES/ NA/ (20-F 06-30-96) / NA
复制代码
这一部分,把需要的东西按你列的字段整理一下,否则不清楚要读哪些
我的博客: http://elek.me/sas
联系我: http://about.me/elek

板凳
qwqwqw 发表于 2011-1-24 09:56:38
2# elek.me

比如说最后的结果就应该是

Name                                   Company Name                                             Obs    Category  Age   Title                                                                 Salary
CAMPORESE, GIOVANNI     A & A INTERNATIONAL INDUSTRIES INC       1        Officer     NA     CHIEF EXECUTIVE OFFICER, PRESIDENT      $31,200
BROWN, LORNE                  A & A INTERNATIONAL INDUSTRIES INC       1        Officer     NA     CONTROLLER                                                  $46,008
CAMPORESE,JULIE             A & A INTERNATIONAL INDUSTRIES INC       1       Officer     NA     SECRETARY                                                    $21,141
CAMPORESE, GIOVANNI     A & A INTERNATIONAL INDUSTRIES INC       1        Director   NA     CHIEF EXECUTIVE OFFICER, PRESIDENT      $31,200
.......
PARKER, JOHN E.               A C MOORE ARTS & CRAFTS INC                  2        Officer    56       PRESIDENT, CHIEF EXECUTIVE OFFICER      NA


因为数据比较大,Company Name,Obs和Category没有和其他的变量在同一行上,所以不知道该怎么处理。非常感谢帮忙

报纸
elek.me 发表于 2011-1-24 10:59:20
CAMPORESE, GIOVANNI/ NA/  CHIEF EXECUTIVE OFFICER, PRESIDENT (20-F 06-30-96) /
$31,200

这种数据,不知道为什么会断成两行,程序中已处理过。
我的博客: http://elek.me/sas
联系我: http://about.me/elek

地板
情迷仲夏夜 发表于 2011-1-25 00:22:34
我觉得:5楼说的sample.txt里的数据大概是在下载或存取时,出现了同一行内最后的卷尾(wrapped up)问题:在原始的数据中,存在5处卷尾:
CAMPORESE, GIOVANNI/ NA/  CHIEF EXECUTIVE OFFICER, PRESIDENT (20-F 06-30-96) /
$31,200
CAMPORESE, GIOVANNI/ NA/  CHIEF EXECUTIVE OFFICER, PRESIDENT (20-F 06-30-96) /
$31,200
GORDON, LESLIE H./ 54/  SENIOR VICE PRESIDENT, TREASURER, CHIEF FINANCIAL OFFICER /
NA
KIRSHENBOIM, ZE'EV/ 44/  CHAIRMAN OF THE BOARD, PRESIDENT, CHIEF EXECUTIVE OFFICER,
MANAGING DIRECTOR / NA
  BEN-BLIEZER, AMATSIA/ 44/  EXECUTIVE OFFICER, CHIEF FINANCIAL OFFICER, VICE
PRESIDENT, MANAGING DIRECTOR / NA
这样的卷尾无形中在给数据读取时增添了很大的难度。看来5楼写的方法还真不错!不愧是编程高手!

7
qwqwqw 发表于 2011-1-25 05:05:06
5# elek.me

我以为这个也是一行的,后来自己编的时候才意识到。真是非常感谢

8
qwqwqw 发表于 2011-1-25 05:07:09
运行的非常顺畅,佩服的五体投地

9
realgod5417 发表于 2011-1-25 12:20:26
做个标记,好好学习,读取技巧
梅须逊雪三分白雪却输梅一段香

10
peijiamei 发表于 2011-1-25 17:32:39
这些程序太厉害了
我的微博:http://t.sina.com.cn/1087192374
欢迎互相加关注!

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

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