SAS:删除字符后的所有文本

时间:2015-11-17 14:15:37

标签: text sas analytics punctuation

我有一列数据,让我们说它看起来像这样:

This is text: part 2
This is text
This is also text: part 3

我需要在以下内容后删除所有内容:这样所有三行数据都将显示为:

This is text
This is text
This is also text

有人知道如何在SAS中这样做吗?我通常会删除标点符号等...但是还没有必要删除字符后的所有内容。

任何指导都将不胜感激 - 谢谢。

2 个答案:

答案 0 :(得分:6)

SCAN()函数适用于此。

want = scan(have,1,':');

唯一的问题可能是文本以冒号开头。如果文本以冒号(或多个冒号)开头,则SCAN(have,1,':')将返回前导冒号后的第一个文本块。如果您添加修饰符' M'到SCAN()调用然后它会将额外的冒号视为表示缺失值并返回空字符串。

want=scan(have,1,':','m');

答案 1 :(得分:0)

data test;
a1='This is text: part 2';
a = substr( a1,1,index(a1,':') - 1);
output;
run;