【发布时间】:2019-02-22 10:59:57
【问题描述】:
我需要为三个变量中相同值的每个组合分配相同的 ID,我真的不知道如何才能在三个变量中发现相同三个字母的组合(A-B-C 应该与 B-C-A 匹配) 这是我的输入数据:
data HAVE;
input ID VAR1 VAR2 VAR3 $;
DATALINES;
001 A B C
002 A C B
003 B C A
004 A B
005 B A
006 D E F
007 E F D
008 F E D
009 E F
010 F E
;
RUN;
得到的 ID_NEW 应该是:
data HAVE;
input ID VAR1 VAR2 VAR3 $ ID_NEW;
DATALINES;
001 A B C 1
002 A C B 1
003 B C A 1
004 A B 2
005 B A 2
006 D E F 3
007 E F D 3
008 F E D 3
009 E F 4
010 F E 4
;
RUN;
我能够通过 proc sql 发现两个组合并使用键 t1.var1=t2.var2 和 t1.var2=t2.var1 执行左连接,但要发现三个字母组合,我想避免加入,因为我可以有 6 种可能的组合,我觉得有一个聪明的方法,而无需重复加入 6 次!也许结合了 catt 和 scan 函数?
提前感谢您的帮助:)!
【问题讨论】:
标签: sas combinations uniqueidentifier scanning