2017-03-27 18 views
0

私はSASには新しく、自分の新しい仕事に使う必要があることがわかりました。これは基本的な質問です。 - カンマで割った - 最初の行の会社では、従業員のSAS:データグループを独自の行に分割する

COMPANY | Employee 
--------|---------- 
COMP1 | @,@,@,@ 
COMP2 | @ 
COMP3 | @,@ 
... 

すべての@はメールアドレスである:

私はこのようになりますテーブルを持っています。 今私はすべての電子メールにそれ自身の行を与えるためにデータステップを使用したいと思います。最初の行に対応する会社名が付いています。このように:

COMPANY | Employee 
--------|---------- 
COMP1 | @ 
COMP1 | @ 
COMP1 | @ 
COMP1 | @ 
COMP2 | @ 
COMP2 | @ 
... 

私はこれが十分であることを願っています。

は、以下のコードは、あなたの問題を解決する必要があり、事前に 月

答えて

1

、ありがとうございました。長いメールに遭遇して2番目のデータステップの長さが増えると思われる場合は、50個の記号を使用してメールを保存しました。最初のデータステップは、私がテストに使用した例です。

data tmp1; 
    length COMP EMAIL $50.; 

    comp="CMP1"; 
    email="[email protected], [email protected], [email protected]"; 
    output; 

    comp="CMP2"; 
    email="[email protected], [email protected]"; 
    output; 
run; 

data tmp2; 
    set tmp1; 
    i=1; 
    length new_email $50; 

    do while(scan(email, i, ",") ne ""); 
     new_email = strip(scan(email, i, ",")); 
     i+1; 
     output; 
    end; 
    drop email i; 
run; 
関連する問題