楼主: Silon.Jon
5179 40

[问答] 如何将一行很长的字符分成若干个观测 [推广有奖]

21
大数据之魂 发表于 2012-11-15 09:30:57
Silon.Jon 发表于 2012-11-15 09:22
真心不是数据库文件,要是已经存到了数据库我就不纠结了
曾经见过类似的  
不清楚这类数据源  

22
Silon.Jon 发表于 2012-11-15 14:06:55
ziyenano 发表于 2012-11-14 22:29
data a;
infile "E:\temp1.txt" dlm=',' dsd lrecl=20000;/*lrecl设置源数据每行读取的长度,默认为256* ...
还是你的代码比较简洁(我是认真的),lrecl=20000是多长,有上限吗?比如一行长达2MB{:3_60:}

23
ziyenano 发表于 2012-11-15 14:12:36
Silon.Jon 发表于 2012-11-15 14:06
还是你的代码比较简洁(我是认真的),lrecl=20000是多长,有上限吗?比如一行长达2MB
lrecl上限是32767;
就是32767个字节

24
Silon.Jon 发表于 2012-11-15 14:14:36
davil2000 发表于 2012-11-14 22:19
data a(drop=xx);
infile 'temp1.txt' dlm=',' dsd lrecl=100000;
input xx :$20. @@;
同样的问题,9.2lrecl的range是1-32767,可是我的长度起码1.5MB怎么办呢?

25
davil2000 发表于 2012-11-15 14:21:07
the basic resolution relies on what kind of database file it is.
R是万能的,SAS是不可战胜的!

26
Silon.Jon 发表于 2012-11-15 14:50:50
davil2000 发表于 2012-11-15 14:21
the basic resolution relies on what kind of database file it is.
Servers' log

27
Silon.Jon 发表于 2012-11-15 15:07:57
davil2000 发表于 2012-11-15 14:21
the basic resolution relies on what kind of database file it is.
其实我也傻了,我应该问“sas有没有一个option是用来控制换行(转向下一个记录)的?”(就类似dlm用来控制最小的数据段)

28
davil2000 发表于 2012-11-15 15:12:21
Silon.Jon 发表于 2012-11-15 14:50
Servers' log
pls access the server directly by sas/access
R是万能的,SAS是不可战胜的!

29
ziyenano 发表于 2012-11-15 15:45:53
是单个文件,还是要批量导入~
单个文件的话,我觉得可以找个折中的方法,
在ue里面,将逗号转成换行符,数据转成一列,
也就不存在上面的问题了,
之后通过循环读入数据就可以了

30
davil2000 发表于 2012-11-15 16:00:19

对于10M下的.txt文件,可以在notepad++中完成换行处理。
现在要用notepad++把符号“],”替换成一个换行符号。方法如下:
1,在notepad++里面打开替换功能,把 “查找模式” 选中为 “扩展(\n, \r, \t, \0, \x…)” ;
2,查找目标里面可以写上“],”,替换为“\r\n”。
这样就可以实现换行了。


notepad.png
已有 3 人评分经验 论坛币 学术水平 热心指数 信用等级 收起 理由
南海游客 + 5 + 5 + 5 对论坛有贡献
大数据之魂 + 100 + 1 + 3 + 5 热心帮助其他会员
数据分析师3K + 60 + 60 + 5 + 5 + 5 精彩帖子

总评分: 经验 + 160  论坛币 + 60  学术水平 + 11  热心指数 + 13  信用等级 + 15   查看全部评分

R是万能的,SAS是不可战胜的!

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

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