2016-05-06 16 views
0

私の変数の1つは数値、テキスト、括弧などの混乱した組み合わせでコード化されていました。私は実際に12345として記録されている数値を抽出する必要があります(たとえば、特定の桁数に限定されず、n-k桁からn桁になる可能性があります)。いくつかの数値を含む説明も含まれます。したがって、私がSAS圧縮機能newvar = compress(oldvar、 ''、 'a')を適用したとき、newvarはoldvarからすべての数値を抽出しました。したがって、それは12345のように見える|||(789)|| '|'の数は、記号(改行などを示すための制御文字ですか?)は異なります。SAS圧縮:前に番号を保持|

「|」の前に最初の数値を抽出するだけで済みます。符号。助けてください? ありがとうございます。

+0

サンプルデータを投稿し、あなたが持っているもの、欲しいもの、試したことを示す必要があります。区切り文字に基づいてテキストを解析する関数はSCAN()ですが、私はあなたの質問を理解しているかどうかはわかりません。 – Reeza

答えて

0

これはそれを行う必要があります。

substr("12345||45||89||...",1,find("|","12345||45||89||...",1)-1) 
+0

こんにちは@ Gaurav-taneja、 あなたの提案をありがとう。私が正しく理解していれば、SASコードは次のようになります: new_var = substr(newvar、1、find( "|"、newvar、1)-1) 右でしょうか?私はこれを試みたが、それは動作しませんでした:( – Naz

2

は値を抽出するためにSCAN()関数を使用します。それは文字の値をもたらし、数値への変換は直感的でなければなりません。

new_var = input(scan(old_var, 1, "|"), best12.); 
関連する問題