我需要替换SAS中的特定unicode字符,恰好是带有空格或空白的U + 0191。我怎么能通过COMPRESS做到这一点?提前谢谢。
答案 0 :(得分:4)
您应该使用KCOMPRESS
function而不是COMPRESS
来压缩unicode字符,因为它被认为对Unicode和DBCS环境更安全。
然而,听起来你实际上想要TRANSLATE
,或更准确地KTRANSLATE
,它实际上用空格或其他字符替换字符(而不是删除它们,如COMPRESS
那样)。
以下是一个例子:
data have;
charvar = "Ƒellow Americans";
fixed_charvar = translate(charvar,'F','Ƒ');
kfixed_charvar= ktranslate(charvar,'F','Ƒ');
put _all_;
run;
这里我将U + 0191转换为普通F;当然,您可以根据需要转换为空格(将'F'
替换为您希望转换为的任何内容。)
这将在以Unicode模式设置的SAS实例中起作用;如果你在WLATIN1或类似的情况下运行,你可能会遇到更多困难,特别是在实际传递SAS U + 0191角色时。