楼主: jacosis
2048 8

[求助]如何解决,为终止符号而数字含有,的情况 [推广有奖]

  • 0关注
  • 3粉丝

VIP

讲师

8%

还不是VIP/贵宾

-

威望
0
论坛币
502 个
通用积分
1.0007
学术水平
15 点
热心指数
17 点
信用等级
11 点
经验
2503 点
帖子
295
精华
0
在线时间
67 小时
注册时间
2008-8-23
最后登录
2018-3-19

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币

对于如下数据:

123,"Harold Wilson",Acct,01/15/1989,$78,123.
128,"Julia Child",Food,08/29/1988,$89,123
007,"James Bond",Security,02/01/2000,$82,100
828,"Roger Doger",Acct,08/15/1999,$39,100
900,"Earl Davenport",Food,09/09/1989,$45,399
906,"James Swindler",Acct,12/21/1978,$78,200

要把他们读入,我写了一个命令如下,但是最后面的那个金额无法解决逗号表示的问题,请问怎么办呢?

data Employee;
infile 'E:\sas\employee.txt' dlm="," ;
input ID : $3.
      Name : $20.
      Depart : $8.
      DateHire : mmddyy10.
      Salary  : dollar8.
 ;
 run;


title "List of The File";
proc print data=Employee;
format DateHire mmddyy10.
            Salary dollar8.
run;

得到结果如下:

                  Obs    ID          Name         Depart       DateHire               Salary

                   1     123    Harold Wilson      Acct       01/15/1989          $78
                   2     128    Julia Child            Food      08/29/1988          $7
                   3     828    Roger Doger        Acct       08/15/1999          $39
                   4     900    Earl Davenport     Food      09/09/1989         $45
                   5     906    James Swindler     Acct      12/21/1978          $78

谢谢各位啊,这个问题想了好久想不出来呀。

二维码

扫码加我 拉你入群

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

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

关键词:Employee security salary Harold Wilson 求助 解决 符号 数字

回帖推荐

宜桦 发表于4楼  查看完整内容

data Employee;infile 'c:\pchen\employee.txt' dlm="," missover dsd;input ID : $3.      Name : $20.      Depart : $8.      DateHire : mmddyy10.      Salary1  : dollar8.        Salary2  : best8.;       if salary2 = . then  ...

本帖被以下文库推荐

沙发
爱萌 发表于 2008-10-6 17:40:00 |只看作者 |坛友微信交流群

当然有了,在你变量的前面加上~,

就可以了

最恨对我说谎或欺骗我的人

使用道具

藤椅
jacosis 发表于 2008-10-6 20:56:00 |只看作者 |坛友微信交流群

楼上能详细说一下吗?是不是

~Salary呢?我运行不起来。

使用道具

板凳
宜桦 发表于 2008-10-7 04:19:00 |只看作者 |坛友微信交流群

data Employee;

infile 'c:\pchen\employee.txt' dlm="," missover dsd;

input ID : $3.

      Name : $20.

      Depart : $8.

      DateHire : mmddyy10.

      Salary1  : dollar8.

        Salary2  : best8.;

 

      if salary2 = . then  salary = salary1 ;

 else if salary2 ne . then salary = salary1 * 1000 + salary2;

 drop salary1 salary2;

 run;

 

[此贴子已经被作者于2008-10-7 4:21:26编辑过]

已有 1 人评分经验 论坛币 收起 理由
bakoll + 3 + 3 精彩帖子

总评分: 经验 + 3  论坛币 + 3   查看全部评分

使用道具

报纸
jacosis 发表于 2008-10-7 08:52:00 |只看作者 |坛友微信交流群
谢谢楼上的回答,虽然我还不怎么看得懂,回头好好琢磨一下子。

使用道具

地板
fxf258 发表于 2008-10-7 09:36:00 |只看作者 |坛友微信交流群

学习了,谢谢!

能否有更好的方法,不需要合并变量来直接读入呢?

海象

使用道具

7
jacosis 发表于 2008-10-7 12:49:00 |只看作者 |坛友微信交流群

data employ;
   infile 'c:\books\learning\employee.csv' dsd missover;
   ***Note: missover is not needed but a good idea.
      truncover will also work
      See Chapter 21 for an explanation of missover
      and truncover infile options;
   informat ID $3. Name $20. Depart $8. 
            DateHire mmddyy10. Salary dollar8.;
   input ID Name Depart DateHire Salary;
   format DateHire date9.;
run; 
 
title "Listing of EMPLOY";
proc print data=employ noobs;
run;

这是我看到的答案,可是有谁能解释一下呢?

使用道具

8
echotianxia 在职认证  发表于 2008-10-7 16:14:00 |只看作者 |坛友微信交流群

data Employee;
infile 'f:\a.csv' dsd missover;
input ID : $3.
      Name : $20.
      Depart : $8.
      DateHire : mmddyy10.
      Salary  & dollar8.
 ;
 run;
title "List of The File";
proc print ;
format DateHire mmddyy10.
            Salary dollar8.;
run;

这是正确答案,你上面的正确答案是不正确的

使用道具

9
jacosis 发表于 2008-10-7 19:04:00 |只看作者 |坛友微信交流群

请问

missover在那一句里面有什么作用呢?

使用道具

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

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-28 18:11