我有一列数据,让我们说它看起来像这样:
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中这样做吗?我通常会删除标点符号等...但是还没有必要删除字符后的所有内容。
任何指导都将不胜感激 - 谢谢。
答案 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;