You did not mention what version of JMP you are working on. If JMP12 or higher there is a a column utility called Recode.
The script below creates a dummy table and calls Recode for coulmn User1.
ex= {"request tests", "request a test", "request testing", "test requests", "test request",
"testing requests"};
dt= New Table("Survey", add rows(50), NewColumn("User1", character,
<< set each value(ex[Random integer(1,6)]) ) );
dt << Go To (:User1);
dt << Recode;
The attached screeshot shows the table and the interactive interface. The red box around Formula is a menu option to create a New Column (of values), a Formula (column) or In Place (replace values). I chose Formula and named the column Recode User1. Next, select all options and right click, then a pop-up menu of options appears. The options are to use one of the numerous phrases, or use a new value. Make your selection and press the Recode button.
Note: If there are multiple goups of answers, you can select the groups by different options, specifying the common term. And when done press recode.
![image.png image.png](https://community.jmp.com/t5/image/serverpage/image-id/10736iA2A9CF46942DEDAC/image-size/large?v=v2&px=999)
The formula created by this action is
Match( :User1,
"request a test", "request tests",
"request testing", "request tests",
"test request", "request tests",
"test requests", "request tests",
"testing requests", "request tests",
:User1
)
I would have used a the following formula
t0 = Trim( Lowercase( :User1 ) );
If( Contains( t0, "request" ) & Contains( t0, "test" ),
"request test",
:User1
);
Neither of these functions handle typos and misspellings. JMP has a function called shortest edit distance and I have a script for computing the Levenshtein Distance and there are other algorithms to "score" the level matching (or non-matching) or words and phrases.
However, of you are working with your data interactively, Recode is very nice to use.
Look up Recode Data in the online book Using JMP. (Main Menu > Help > Books > Using JMP).