SAS:可以在RegEx或PRXPARSE中使用变量/观察

时间:2016-06-30 19:09:09

标签: sas

我有一个包含CITY和COUNTRY的数据集。不幸的是,COUNTRY也被连接到了CITY领域。它看起来像这样:


    CITY                           COUNTRY
    Mexico City Mexico             Mexico
    Providence  United States      United States
    London United Kingdom          United Kingdom

我需要将国名移出城市。

我可以为每个国家写一个这样的一行:

CITY = PRXCHANGE('S/MEXICO\s+$//', 1, CITY);

但这看起来很难看。

我希望能够使用从PRXCHANGE语句中的数据集读取的COUNTRY。像

这样的东西
CITY = PRXCHANGE('S/COUNTRY\s+$//', 1, CITY);

上述功能不起作用,因为代码会搜索文字' COUNTRY'而不是变量的值。

我尝试使用宏变量但是(如果我理解正确的话)它必须在先前的数据步骤中设置,这对我们没有帮助。

过去几个小时我一直在搜索SO和google但是还没有能够提出任何解决方案。看起来这应该是可行的。

任何建议都将不胜感激!

1 个答案:

答案 0 :(得分:2)

对我来说似乎很简单。您需要使用表达式作为第一个参数而不是常量。

CITY = PRXCHANGE(cats('S/',COUNTRY,'\s+$//'), 1, CITY);