我是SAS的新手,发现自己不得不将它用于我的新工作。所以这是一个基本问题。
我有一张看起来像这样的表:
COMPANY | Employee
--------|----------
COMP1 | @,@,@,@
COMP2 | @
COMP3 | @,@
...
每个@都是第一行中公司员工的电子邮件地址 - 除以逗号。 现在我想使用Data步骤为每个电子邮件提供自己的行。每个都在第一行中有相应的公司名称。像这样:
COMPANY | Employee
--------|----------
COMP1 | @
COMP1 | @
COMP1 | @
COMP1 | @
COMP2 | @
COMP2 | @
...
我希望这已经足够了。
提前谢谢你 扬
答案 0 :(得分:1)
以下代码可以解决您的问题。请注意,我使用50个符号来存储电子邮件,如果您认为可能会遇到更长的电子邮件,则会增加第二个数据步骤的长度。第一个数据步骤只是我用于测试的一个例子。
data tmp1;
length COMP EMAIL $50.;
comp="CMP1";
email="ABC@cmp1.com, DEF@cmp1.com, GHI@comp1.com";
output;
comp="CMP2";
email="ABC@cmp2.com, DEF@cmp2.com";
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;