基于值的 SAS 串联
SAS Concatenation based on values
下面是示例数据。
NAME VAR2 VAR3 VAR4 VAR5
ABC X Y 2
DEF P Q R 3
GHI L 1
变量计数(来自 VAR2-VAR4)存在于每条记录的 VAR5 下,我想要以下输出与 NewVar 作为包含值的变量的串联。
NAME VAR2 VAR3 VAR4 VAR5 NewVar
ABC X Y 2 X,Y
DEF P Q R 3 P,Q,R
GHI L 1 L
我不知道如何在 SAS 中执行此操作。感谢任何帮助。
使用CATX()
函数连接变量;使用此功能,您可以选择指定要在值之间使用的分隔符。前任。 CATX(',',VAR2,VAR3,VAR4)
输入数据:
data have;
input NAME $ VAR2 $ VAR3 $ VAR4 $ VAR5;
datalines;
ABC X Y . 2
DEF P Q R 3
GHI L . . 1
;
run;
解决方案:
data want;
set have;
NewVar= catx(',',VAR2,VAR3,VAR4);
run;
或
%let list=VAR2,VAR3,VAR4;
data want2;
set have;
NewVar= catx(',',&list.);
run;
或(汤姆的推荐)
data want3;
set have;
NewVar= catx(',',of var2-var4);
run;
输出:
NAME=ABC VAR2=X VAR3=Y VAR4= VAR5=2 NewVar=X,Y
NAME=DEF VAR2=P VAR3=Q VAR4=R VAR5=3 NewVar=P,Q,R
NAME=GHI VAR2=L VAR3= VAR4= VAR5=1 NewVar=L
下面是示例数据。
NAME VAR2 VAR3 VAR4 VAR5
ABC X Y 2
DEF P Q R 3
GHI L 1
变量计数(来自 VAR2-VAR4)存在于每条记录的 VAR5 下,我想要以下输出与 NewVar 作为包含值的变量的串联。
NAME VAR2 VAR3 VAR4 VAR5 NewVar
ABC X Y 2 X,Y
DEF P Q R 3 P,Q,R
GHI L 1 L
我不知道如何在 SAS 中执行此操作。感谢任何帮助。
使用CATX()
函数连接变量;使用此功能,您可以选择指定要在值之间使用的分隔符。前任。 CATX(',',VAR2,VAR3,VAR4)
输入数据:
data have;
input NAME $ VAR2 $ VAR3 $ VAR4 $ VAR5;
datalines;
ABC X Y . 2
DEF P Q R 3
GHI L . . 1
;
run;
解决方案:
data want;
set have;
NewVar= catx(',',VAR2,VAR3,VAR4);
run;
或
%let list=VAR2,VAR3,VAR4;
data want2;
set have;
NewVar= catx(',',&list.);
run;
或(汤姆的推荐)
data want3;
set have;
NewVar= catx(',',of var2-var4);
run;
输出:
NAME=ABC VAR2=X VAR3=Y VAR4= VAR5=2 NewVar=X,Y
NAME=DEF VAR2=P VAR3=Q VAR4=R VAR5=3 NewVar=P,Q,R
NAME=GHI VAR2=L VAR3= VAR4= VAR5=1 NewVar=L