楼主: Jacobi123
3290 10

[问答] data步数据录入 [推广有奖]

  • 0关注
  • 0粉丝

高中生

90%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
209 点
帖子
27
精华
0
在线时间
42 小时
注册时间
2011-6-22
最后登录
2016-6-5

楼主
Jacobi123 发表于 2013-3-29 14:53:47 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
我有一组短信的数据要录入,但是有短信内容的数据录在不同的行里,不知道在data步里怎么实现,将它放在一个变量里aaaa.txt
:

<SMS>
<Date>2012-06-25 23:21:05</Date>
<Body><![CDATA[

苏子曰:“客亦知夫水与月乎?

]]></Body>
</SMS>
<SMS>
<Date>2012-06-25 23:28:58</Date>
<Body><![CDATA[

逝者如斯,而未尝往也;盈虚者如彼,而卒莫消长(zhǎng)也。盖将自其变者而观之,则天地曾不能以一瞬;自其不变者而观之,则物与我皆无尽也,而又何羡乎!

且夫

天地之间,

物各有主

,苟非吾之所有,虽一毫而莫取。惟江上之清风,与山间之明月。耳得之而为声,目遇之而成色,取之无禁,用之不竭,是

造物者

之无尽藏(zàng)也,而吾与子之所共适。

]]></Body>
</SMS>



二维码

扫码加我 拉你入群

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

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

关键词:data步 Data 数据录入 txt 不知道 录入

沙发
heperwong 在职认证  发表于 2013-3-29 16:26:25
这个很难,因为短信内容行数不规则,有的一行,有的有多行,建议先输入到不同的变量里,然后在cat一起到aaaa变量里。

藤椅
Jacobi123 发表于 2013-4-1 17:07:09
heperwong 发表于 2013-3-29 16:26
这个很难,因为短信内容行数不规则,有的一行,有的有多行,建议先输入到不同的变量里,然后在cat一起到aaa ...
我感觉行数不确定,也很难输入到不同的变量里去。有可实施的办法么?

板凳
pobel 在职认证  发表于 2013-4-1 20:07:56
楼主要实现什么效果?
和谐拯救危机

报纸
Jacobi123 发表于 2013-4-2 09:55:29
pobel 发表于 2013-4-1 20:07
楼主要实现什么效果?
希望得到:
date                                               text
2012-06-25 23:21:05                    苏子曰:“客亦知夫水与月乎?
2012-06-25 23:28:58                    逝者如斯,而未尝往也;盈虚者如彼,而卒莫消长(zhǎng)也。盖将其变者而观之,则天地曾不能以一瞬;自其不变者而观之,则物与我皆无尽也,而又何羡乎!。。。。。。

这样2条记录

地板
孤灯渡漠 发表于 2013-4-2 10:06:20
你这个可以用xml读,会非常方便

7
Jacobi123 发表于 2013-4-2 10:32:06
孤灯渡漠 发表于 2013-4-2 10:06
你这个可以用xml读,会非常方便
我的数据源就是一个XML的文件,能否告知如何导入?简单的网上搜了下。
我用 LIBNAME xmltext XML 'C:\Users\zhucheng\Desktop\sms\duanxin.xml';
读取的时候报错了:
ERROR: Some code points did not transcode.
ERROR: Encountered during XMLMap parsing at or near line 288, column 2.
数据源里是这样的:
<?xml version="1.0" encoding="UTF-8" ?>
<SMSRecord>
<SMS>
<Type>2</Type>
<Status>0</Status>
<Read>1</Read>
<Protocal>0</Protocal>
<Subject></Subject>
<Address>13761155096</Address>
<Date>2012-06-25 12:16:11</Date>
<SERVICE_CENTER></SERVICE_CENTER>
<Body><![CDATA[苏子曰:“客亦知夫水与月乎?]]></Body>
</SMS>

8
pobel 在职认证  发表于 2013-4-2 11:07:27
data test;
   infile "d:\message.iml";
   length date $40 temp text $500;
   retain date text flag;

   *** input each line;
   input;
   temp=_infile_;

   *** Get date for each message;
   if index(temp,"<Date>") then date=scan(temp,2,"<>");

   *** Get content of message;
   else if index(temp,"<Body>") then flag=1;
   else if index(temp,"</Body>") then flag=0;
   lagflag=lag(flag);

   if flag=1 and lagflag=1 then text=cats(text,temp);

   *** Output each record;
   if flag=0 and lagflag=1 then do;
       output;
           call missing(date,text);
        end;

        keep date text;
run;
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
Jacobi123 + 1 + 1 + 1 谢谢帮忙~~

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

和谐拯救危机

9
Jacobi123 发表于 2013-4-2 15:54:16
pobel 发表于 2013-4-2 11:07
data test;
   infile "d:\message.iml";
   length date $40 temp text $500;
非常精彩,通过flag和lagflag来标记控制需要合并的内容,谢谢啦~~
有个问题,call missing(date,text);这段有什么用呢,没有看懂。好像去掉了也可以跑。

10
pobel 在职认证  发表于 2013-4-2 16:00:43
Jacobi123 发表于 2013-4-2 15:54
非常精彩,通过flag和lagflag来标记控制需要合并的内容,谢谢啦~~
有个问题,call missing(date,text);这 ...
call missing()的目的是输出某条信息后,将变量date和text的值设为空值。
否则第二条记录中text的值就会是“苏子曰:“客亦知夫水与月乎?逝者如斯,而未尝往也... ...”

这里可以不把date置空。
和谐拯救危机

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-19 11:47