Super User
Posts: 10,784

Re: String Difference in Percentage

If you are trying to make some EDIT DISTANCE for two string, then PG 's suggest is good, SAS has already built-in some function for that purpose.

Otherwise , try

```data have;
input obs var1 \$ var2 \$;
datalines;
1 RAT CAT
2 BELL BALL
3 TIME TOM
;
run;
data want(drop=n i);
set have;
n=0;
do i=1 to length(var1);
if char(var1,i) ne char(var2,i) then n+1;
end;
dif=divide(n,length(var1));
run;
```

Xia Keshan

Contributor
Posts: 45

Re: String Difference in Percentage

Thank you so much!

Contributor
Posts: 45

Re: String Difference in Percentage

HI KSharp,

How will I use the same logic for two different string, where words (unlike character here) have pattern:

Here is an example:

String 1: "It is a cat"

String 2: "This is a cat"

Can I use SAS to calculate that "String2 is 25% different from String1"?

Jijil Ramakrishnan

Super User
Posts: 10,784

Re: String Difference in Percentage

OK. No problem.

```data have;
input obs var1 & \$40. var2 & \$40.;
datalines;
1 It is a cat    This is a cat
2 a fox jump over a dog    Tom cat jump over a dog
;
run;
data want(drop=n i);
set have;
n=0;
do i=1 to countw(var1);
if upcase(scan(var1,i)) ne upcase(scan(var2,i)) then n+1;
end;
dif=divide(n,countw(var1));
run;

```

Xia Keshan

Discussion stats
• 3 replies
• 206 views
• 0 likes
• 2 in conversation