我有一个值,我需要找到数据集中具有此值的变量。所有都是字符变量,搜索值也是字符变量。
示例:
要搜索的值: 123456
输出:Var1和Var3
提前致谢
答案 0 :(得分:2)
您希望将WHICHC
与数组结合使用,然后VNAME
找出变量的名称。
data have;
input x $ y $ z $;
datalines;
123456 234567 345678
234567 345678 123456
345678 234567 456789
;;;;
run;
data want;
set have;
array vars x y z;
pos = whichc('123456',of vars[*]);
if pos>0 then varname = vname(vars[pos]);
run;
如果找不到,则 WHICHC
返回0。然后,您可以在此数据集上使用PROC FREQ
来查找具有此值的所有值的列表。
这种特殊方法只有在每行只能存在一次时才有效;如果它可以存在于同一行的两个变量中,则必须循环遍历数组并迭代搜索它。