在sas中使用单词分隔符拆分字符串

时间:2016-03-24 14:27:17

标签: string sas

我正在寻找一种使用此分隔符拆分非常长的字符串的方法:'| '

扫描功能似乎不接受单词分隔符,所以如果我这样做

scan(string,3,'| ')

它会在每|和空格分开 而不是像我需要的那样'| '

在文档中,我没有看到任何修改器允许这样做。 http://support.sas.com/documentation/cdl/en/lrdict/64316/HTML/default/viewer.htm#a000214639.htm

2 个答案:

答案 0 :(得分:1)

INFILE具有DLMSTR与infile magic结合使用时可以完全满足您的需要。你的transwrd想法应该运作良好。

enter image description here

data test;
   input string $50.;
   cards4;
This|is | pipe space| delmimited
This| is| too I believe
;;;;
   run;
data test2;
   infile cards missover dlmstr='| ';
   if _n_ eq 1 then input @;
   array w[5] $64;
   do while(not eof);
      set test end=eof;
      _infile_ = string;
      input @1 w[*] @;
      output;
      end; 
   stop;
   cards;
Necessary evil
   run;

答案 1 :(得分:0)

我自己发现了

使用tranwrd'| '替换为'_'

newstring=tranwrd(string,'| ','_');

然后我可以正常使用扫描功能

xxx=scan(newstringstring,3,'_');