楼主: appleqiuqiu
4324 11

[问答] 如何读入长度未知的文本数据? [推广有奖]

  • 0关注
  • 1粉丝

已卖:773份资源

副教授

41%

还不是VIP/贵宾

-

威望
0
论坛币
3666 个
通用积分
2.9200
学术水平
2 点
热心指数
2 点
信用等级
2 点
经验
4191 点
帖子
133
精华
0
在线时间
1514 小时
注册时间
2010-4-27
最后登录
2022-6-22

楼主
appleqiuqiu 发表于 2013-5-7 11:13:46 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
飞信截图20130507142556.jpg 请教各位大牛!

我现在有一个csv文件,里面有如下变量:
id:32位的字符串
txt:文本(这个是主要问题,长度无法确定,有的长有的短)
county:这列的记录全都是CN
day:20130412
time:10:20:54(24小时制)

data test.word;
infile 'F:\word.csv' dsd;
input id $ 1-32 txt $ @34 @'C' country $ province $ city $ day yymmdd8. time time8.;
format day yymmdd8. time time8.;
run;


关键是对txt的处理,我的想法,在读txt之前先把指针移到第34位,由于无法确定最大长度,所以不能直接指明第几列到第几列,但是下一列的country永远是CN开头,所以一个想法是让txt一直读到遇见“C",不知道我的code写的是否对???
事实证明好像错了,因为run之后数据集明显不对。。。求助各位大牛哪里错了,或者这样的数据集应该如何读?

数据截图在最上面!

二维码

扫码加我 拉你入群

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

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

关键词:文本数据 province Country format infile 如何

沙发
yykun 发表于 2013-5-7 11:31:30
你看看csv文件的分隔符是什么,infile 'f:\word.csv' dsd dlm='09'x;很有可能是制表符,也就是tab键,在sas中就是'09'x

藤椅
appleqiuqiu 发表于 2013-5-7 11:36:19
yykun 发表于 2013-5-7 11:31
你看看csv文件的分隔符是什么,infile 'f:\word.csv' dsd dlm='09'x;很有可能是制表符,也就是tab键,在sas ...
好像不是这个问题。。。。我按照你的run了一遍还是没解决问题

板凳
yykun 发表于 2013-5-7 12:17:01
appleqiuqiu 发表于 2013-5-7 11:36
好像不是这个问题。。。。我按照你的run了一遍还是没解决问题
不懂了,能贴出来几条数据看看吗

报纸
appleqiuqiu 发表于 2013-5-7 14:33:11
yykun 发表于 2013-5-7 12:17
不懂了,能贴出来几条数据看看吗
图片如下,其中id、country、province、city、day和time都是很规则的,唯一不规则的就是txt列,由于我有几十万条这样的数据,所以根本无法实现确定txt列的最大长度,如果直接读的话肯定会把长度较长的截断,现在有什么办法可以完整的把数据读进来?

地板
appleqiuqiu 发表于 2013-5-7 14:33:46
数据举例

飞信截图20130507142556.jpg (20.57 KB)

飞信截图20130507142556.jpg

7
webgu 发表于 2013-5-7 14:52:41
别这么折腾。用IMPORT  CSV吧。
SAS资源
1. SAS 微信:StatsThinking
2. SAS QQ群:348941365

8
appleqiuqiu 发表于 2013-5-7 14:55:44
webgu 发表于 2013-5-7 14:52
别这么折腾。用IMPORT  CSV吧。
我用了,不行,因为有的过长的会被截断,我需要完整的

9
yykun 发表于 2013-5-7 17:56:22
appleqiuqiu 发表于 2013-5-7 14:55
我用了,不行,因为有的过长的会被截断,我需要完整的
txt~$9999.

10
yuerqieqie 发表于 2013-5-7 20:53:36
csv file 的分隔符通常是",".
试一试
data test.word;
infile 'F:\word.csv' delimiter = ',' MISSOVER DSD lrecl=32767;
informat id $32.;
informat txt $255.;
informat country $2.;
informat province $8.;
informat city $8.;
informat day yymmdd8.;
informat time8.;
input id $ txt $ country $ province $ city $ day time;
format day yymmdd8. time time8.;
run;
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
ariman911 + 1 + 1 + 1 我很赞同,中文字預設只能讀128字

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

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

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