楼主: Silon.Jon
5175 40

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

11
ziyenano 发表于 2012-11-14 18:04:51
Silon.Jon 发表于 2012-11-14 17:58
加了:,好像不从第一行读了
data a;
infile "E:\a.txt" dlm=',' dsd;
input (x1-x5)(:$8.)@@;
x1=compress(x1,'[]');
x5=compress(x5,'[]');
run;
这样写,有问题嘛?

12
Silon.Jon 发表于 2012-11-14 18:19:04
我的实际问题是[]中有24的不懂长度的字符串,我改了代码,第一个读的没问题,到第二个记录的第14个变量就卡住读不了了

13
Silon.Jon 发表于 2012-11-14 18:26:18
ziyenano 发表于 2012-11-14 18:04
data a;
infile "E:\a.txt" dlm=',' dsd;
input (x1-x5)(:$8.)@@;
temp1.txt (2.04 KB)

我用的是
data a;
infile "E:\temp1.txt" dlm=',' dsd;
input (x1-x24)(:$100.)@@;
x1=compress(x1,'[');
x24=compress(x24,']');
run;
然后就卡到第二个记录不读了

14
davil2000 发表于 2012-11-14 21:24:59
Silon.Jon 发表于 2012-11-14 18:26
我用的是
data a;
infile "E:\temp1.txt" dlm=',' dsd;
这个文件并非多行记录
记事本文档造成的错觉而已
使用NOTEPAD打开后所看到的仅是一行记录
R是万能的,SAS是不可战胜的!

15
gugle 发表于 2012-11-14 21:32:40
不错。

16
davil2000 发表于 2012-11-14 22:19:12
Silon.Jon 发表于 2012-11-14 18:26
我用的是
data a;
infile "E:\temp1.txt" dlm=',' dsd;
data a(drop=xx);
infile 'temp1.txt' dlm=',' dsd lrecl=100000;
input xx :$20. @@;
x=compress(xx,'@[]');
run;

%macro treat;
  %do i= 1 %to 24;
data data&i(rename=(x=x&i));
set a;
if mod(_n_,24)=&i * (&i^=24);
run;
  %end;
%mend treat;

%macro Adata;
data Adata;
merge
%do i= 1 %to 24;
data&i  
  %end;
; run;
%mend ;

%treat;
%Adata;


proc print data=Adata;
run;

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

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

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

17
ziyenano 发表于 2012-11-14 22:29:11
Silon.Jon 发表于 2012-11-14 18:26
我用的是
data a;
infile "E:\temp1.txt" dlm=',' dsd;
data a;
infile "E:\temp1.txt" dlm=',' dsd lrecl=20000;/*lrecl设置源数据每行读取的长度,默认为256*/
input (x1-x24)(:$100.)@@;
x1=compress(x1,'[');
x24=compress(x24,']');
run;

18
大数据之魂 发表于 2012-11-15 09:15:58
这是何种类型的数据库文件?

19
Silon.Jon 发表于 2012-11-15 09:20:40
davil2000 发表于 2012-11-14 22:19
data a(drop=xx);
infile 'temp1.txt' dlm=',' dsd lrecl=100000;
input xx :$20. @@;
我是用Notepaa++打开的,是一行(长达1M),多谢你的代码,早上来了刚看到,等等试试

20
Silon.Jon 发表于 2012-11-15 09:22:54
大数据之魂 发表于 2012-11-15 09:15
这是何种类型的数据库文件?
真心不是数据库文件,要是已经存到了数据库我就不纠结了

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

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