Arrays SAS帮助:使用索引功能比较2列
我想使用index函数比较A和B的字符串值。我想检查A的列中是否包含B。我知道的唯一方法是索引,但问题是索引的参数中不允许使用列名。您必须输入一个字符串值 尝试了以下操作:Arrays SAS帮助:使用索引功能比较2列,arrays,search,sas,fuzzy-comparison,Arrays,Search,Sas,Fuzzy Comparison,我想使用index函数比较A和B的字符串值。我想检查A的列中是否包含B。我知道的唯一方法是索引,但问题是索引的参数中不允许使用列名。您必须输入一个字符串值 尝试了以下操作:索引(地址、门牌号)>0,但不起作用 例如: Address HouseNumber 123 Road Road 所以我想看看Address列的字段中是否包含House number值。它不是直接匹配,只是想检查a是否包含字符串。我认为使用宏变量或数组是解决方案,但我不知道如何做到这一点 您
索引(地址、门牌号)>0
,但不起作用
例如:
Address HouseNumber
123 Road Road
所以我想看看Address列的字段中是否包含House number值。它不是直接匹配,只是想检查a是否包含字符串。我认为使用宏变量或数组是解决方案,但我不知道如何做到这一点 您需要考虑SAS所做的填充,因为所有变量都是固定长度的
data have ;
length Address HouseNumber $50;
infile cards dsd dlm='|';
input address housenumber ;
cards;
123 Road|Road
;;;;
data want ;
set have ;
if index(address,strip(HouseNumber));
run;
您需要考虑SAS所做的填充,因为所有变量都是固定长度的
data have ;
length Address HouseNumber $50;
infile cards dsd dlm='|';
input address housenumber ;
cards;
123 Road|Road
;;;;
data want ;
set have ;
if index(address,strip(HouseNumber));
run;
这是有效的-这是你想要做的吗
data _null_;
a = '52 Festive Rd';
b = 'Festive';
if index(a,b) then put 'yes';
else put 'no';
run;
这是有效的-这是你想要做的吗
data _null_;
a = '52 Festive Rd';
b = 'Festive';
if index(a,b) then put 'yes';
else put 'no';
run;
FIND()
具有't
修饰符,可以为您进行修剪,但需要注意的是,它会修剪两个字段。此注释救了我的命。我想知道为什么索引不起作用。我在中添加了strip(),它可以工作FIND()
有一个't
修饰符,可以为您进行修剪,但需要注意的是,它会修剪两个字段。这个注释救了我的命。我想知道为什么索引不起作用。我在中添加了strip(),它可以工作!我想你的答案在Tom的下面,但是如果你把你的问题作为一个完整的数据步骤来复制,你的问题会得到更好的答案。我想你的答案在Tom的下面,但是,如果您输入代码将问题复制为完整的数据步骤,您的问题将得到更好的答案。要查看问题,请在B值的末尾添加一些空格。可以将空格包含在字符串文字中,也可以在赋值之前设置长度,长度超过7个字符。是的,但必须添加strip()。我之前尝试过这个,但即使两个字符串相同,也没有给出结果。谢谢要查看此问题,请在B值的末尾添加一些空格。可以将它们包含在字符串文字中,也可以在赋值之前设置长度,长度超过7个字符。是的,但必须在中添加strip()。我之前尝试过这个,但即使两个字符串相同,也没有给出结果。谢谢