提取SAS中第二个出现的字符串
我有以下带有货币和金额字段的文本 交易货币为美元,金额为200.00;交易货币为欧元,金额为150.00 我需要创建四个变量提取SAS中第二个出现的字符串,sas,find,substr,Sas,Find,Substr,我有以下带有货币和金额字段的文本 交易货币为美元,金额为200.00;交易货币为欧元,金额为150.00 我需要创建四个变量tran1,amt1,tran2和amt2变量 Tran1 amt1 Tran2 amt2 USD 200 EUR 150 我使用了substr和find函数,但它只是第一次出现 Tran1=substr(string,find(string,”transacrioncurrency”)+21,3); Amt1=substr(string,find(st
tran1
,amt1
,tran2
和amt2
变量
Tran1 amt1 Tran2 amt2
USD 200 EUR 150
我使用了substr
和find
函数,但它只是第一次出现
Tran1=substr(string,find(string,”transacrioncurrency”)+21,3);
Amt1=substr(string,find(string,”the amount is”)+12,5);
要查找第一个引用位置之后的第二个引用,请执行以下操作:
data f;
p="The transaction currency is USD and the amount is 200.00 The transaction currency is EUR and the amount is 150.00";
p1=find(p,"The transaction currency",1);
Tran1=substr(p,p1+28,3);
p2=find(p,"the amount is",1);
Amt1=substr(p,p2+14,6);
p3=find(p,"The transaction currency",p1+1);
Tran2=substr(p,p3+28,3);
p4=find(p,"the amount is",p2+1);
Amt2=substr(p,p4+14,6);
;
run;
结果:
p p1 Tran1 p2 Amt1 p3 Tran2 p4 Amt2
The transacti.. 1 USD 37 200.00 58 EUR 94 150.00
这里有一种使用
输入
语句的替代方法,如果文本位于外部文件中,则可以使用该方法:
data example;
input @'is ' tran1 $3. @;
input @'is ' amt1 :8. @;
input @'is ' tran2 $3. @;
input @'is ' amt2 8.;
datalines;
The transaction currency is USD and the amount is 200.00 The transaction currency is EUR and the amount is 150.00
;
run;