【发布时间】:2017-04-28 18:14:58
【问题描述】:
我需要用空格或空白替换 SAS 中的特定 unicode 字符,即 U+0191。我怎样才能通过 COMPRESS 做到这一点?提前致谢。
【问题讨论】:
我需要用空格或空白替换 SAS 中的特定 unicode 字符,即 U+0191。我怎样才能通过 COMPRESS 做到这一点?提前致谢。
【问题讨论】:
您应该使用 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 字符时。
【讨论】: