我有一列數據後,讓我們說,它看起來是這樣的:SAS:刪除所有文字字符
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?我通常會刪除標點,等等......但還沒有需要刪除一個字符後的所有內容。
任何指導將不勝感激 - 謝謝。
我有一列數據後,讓我們說,它看起來是這樣的:SAS:刪除所有文字字符
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?我通常會刪除標點,等等......但還沒有需要刪除一個字符後的所有內容。
任何指導將不勝感激 - 謝謝。
的SCAN()
功能會爲這項工作做得很好。
want = scan(have,1,':');
唯一的問題可能是如果文本以冒號開頭。如果文本以冒號(或多個冒號)開頭,則SCAN(have,1,':')
將返回引導冒號後面的第一個文本塊。如果將修飾符'M'添加到SCAN()
調用中,那麼它會將額外的冒號視爲表示缺少的值並返回一個空字符串。
want=scan(have,1,':','m');
data test;
a1='This is text: part 2';
a = substr(a1,1,index(a1,':') - 1);
output;
run;
能使用'掃描(有,-2, ':')',如果它會以一個冒號開始,不是嗎?雖然如果它不包含冒號,那麼它會失敗......沒有理想的解決方案,我猜沒有檢查。 – Joe
@joe更新瞭解決領先冒號的問題。 – Tom
啊,我忘記了M修飾符 - 非常好。 – Joe