从一列在 SAS 中创建一个字符串
Make a string in SAS from one column
我在 SAS 中有一个数据集,我想通过产品将一列转换为字符串。我附上了所需输入和输出的图像。
我需要输出中的 Colomn STRING。谁能帮帮我?
我编写了一个数据步骤来创建输入数据:
data have;
input products $
dates
value
;
datalines;
a 1 0
a 2 0
a 3 1
a 4 0
a 5 1
a 6 1
b 1 0
b 2 1
b 3 1
b 4 1
b 5 0
b 6 0
c 1 1
c 2 0
c 3 1
c 4 1
c 5 0
c 6 1
;
以下建议的解决方案是否满足您的需求?:
data want;
length string $ 20;
do until(last.products);
set have;
by products;
string = catx(',',string,value);
end;
do until(last.products);
set have;
by products;
output;
end;
run;
这是我的快速解决方案。
data temp;
length cat .;
do until (last.prod);
set have;
by prod notsorted;
cat=catx(',',cat,value);
end;
drop value date;
run;
proc sql;
create table want as
select have.*, cat as string
from have inner join temp
on have.prod=temp.prod;
quit;
我在 SAS 中有一个数据集,我想通过产品将一列转换为字符串。我附上了所需输入和输出的图像。 我需要输出中的 Colomn STRING。谁能帮帮我?
我编写了一个数据步骤来创建输入数据:
data have;
input products $
dates
value
;
datalines;
a 1 0
a 2 0
a 3 1
a 4 0
a 5 1
a 6 1
b 1 0
b 2 1
b 3 1
b 4 1
b 5 0
b 6 0
c 1 1
c 2 0
c 3 1
c 4 1
c 5 0
c 6 1
;
以下建议的解决方案是否满足您的需求?:
data want;
length string $ 20;
do until(last.products);
set have;
by products;
string = catx(',',string,value);
end;
do until(last.products);
set have;
by products;
output;
end;
run;
这是我的快速解决方案。
data temp; length cat .; do until (last.prod); set have; by prod notsorted; cat=catx(',',cat,value); end; drop value date; run; proc sql; create table want as select have.*, cat as string from have inner join temp on have.prod=temp.prod; quit;