2017-02-22 361 views
0

我正在SAS EGDI中工作,面临一个非常特殊的问题。删除SAS数据集中的引号和空格

当我查看SAS DI Studio或EG中的数据集列时,它显示正常。但是当我将数据粘贴到记事本中时,一些引号和空格出现

其中我看到在EG的数据:当复制到记事本 without spaces

但同样的数据,

额外的引号和空格都出现这样的(在第6行):with spaces and quotes

当我将此字段用作连接中的键时,发现此问题,第6行的其他相关列值不会输出,因为匹配对于第6条记录而言失败。

我试过很多东西像tranwrd,dequote和压缩他们没有正在改变我的结果。

有人可以帮助理解问题是什么以及如何解决这个问题。

+0

你是如何复制它的?使用鼠标?从哪里复制?您是否尝试将值写入文本文件并检查文本文件? – Tom

回答

2

查看列中的内容,以便决定如何处理它。此查询将显示字符串和字符串的十六进制表示形式。

proc sql; 
    select postcode,put(trim(postcode),$hex.) as hexcode,count(*) as nobs 
    from x 
    group by 1,2 
    ; 
quit; 

所以,如果你看到的十六进制字符,如0A,0D,A0,08或其他不可打印的代码,那么你可以弄清楚发生了什么。

因此,对于大多数记录,您可能会看到POSTCODE ='LS5 3BT',HEXCODE ='4C533520334254'。但也许有一些看起来像POSTCODE ='LS5 3BT',但HEXCODE的值是'0A4C533520334254',这意味着你在字符串的开头有一个换行字符。或者,也许而不是空间('20'X),你有一个标签('09'X)在字符串中间。

+0

你在@Tom上爆炸。我有'** 0D4C533520334254 **' - 一个CR运行您的查询。我使用'TRANSLATE(POSTCODE,','0D'x)'将其删除。课程TRANWRD也可以使用。 非常感谢帮助我了解原因。 –