全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
6671 9
2014-01-23
悬赏 50 个论坛币 未解决
txt文件内容如下:
abc$$$
ccc
dddaaa$$$xyz
ddd
希望得到的数据集为:
abc
$$$
ccc
dddaaa
$$$
xyz

谢谢!

二维码

扫码加我 拉你入群

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

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

全部回复
2014-1-23 03:56:02
进来看看,我也不知道
二维码

扫码加我 拉你入群

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

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

2014-1-23 09:20:43
$表示的字符都一样吗?一样的话还可以做,不一样就不好办了;
建议:可以先读入每一行数据,用find函数查找$字符,substr函数截取字符串,将数据分列
分好列后用数组拉直成向量,删除空值就ok了
二维码

扫码加我 拉你入群

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

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

2014-1-23 09:22:19
dengrong1989 发表于 2014-1-23 09:20
$表示的字符都一样吗?一样的话还可以做,不一样就不好办了;
建议:可以先读入每一行数据,用find函数查找 ...
都是$$$三个字符
二维码

扫码加我 拉你入群

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

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

2014-1-23 09:46:40
dxystata 发表于 2014-1-23 09:22
都是$$$三个字符
那我的方法应该可以做,随便写了一点,你可以参考一下
data a;
input var1 $20.;
datalines;
abc$$$
ccc
dddaaa$$$xyz
ddd
;
run;

data b;
set a;
if find(var1,'$') then do;
var2=substr(var1,1,find(var1,'$')-1);
var3=substr(var1,find(var1,'$'),3);
var4=substr(var1,find(var1,'$')+3,3);
end;
else var2=var1;
drop var1;
run;

data c;
set b;
array v(3) $ var2-var4;
do i=1 to dim(v);
var=v(i);
if var ne "" then output;
end;
keep var;
run;

二维码

扫码加我 拉你入群

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

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

2014-1-24 01:56:04

  data want(keep=x);
  infile 'c:\temp\temp.txt' ;
  input x $;
  if index(_infile_,'$')^=0 then do;
     length=length(_infile_);
     _length=findc(_infile_,'$','b');
      if length>_length then do;
          x=scan(_infile_,1);
          output;
          x=compress(_infile_,'$','k');
          output;
          x=scan(_infile_,-1);
                  output;
      end;
      else do;
           x=scan(_infile_,1);
          output;
          x=compress(_infile_,'$','k');
          output;
      end;
  end;
  else output;
  run;

二维码

扫码加我 拉你入群

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

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

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群