cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Choose Language Hide Translation Bar
sciguy
Level III

Nested Recode

Is there a way to nest a Recode on a single column based on multiple columns using JSL?

 

Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");

dt << New Column( "Stature",
		Character( 40 ),
		"Nominal",
		Formula(
			Recode(
				:age & :height,
				{Map Value(
					_rcOrig, {
					"12" & "59", "short tween",
					"12" & "66", "Tall tween",
					"17" & "70", "Tall teenager"
					},
					Unmatched( empty() )
				)}
			)
		),
	Set Display Width( 56 )
);
1 ACCEPTED SOLUTION

Accepted Solutions
txnelson
Super User

Re: Nested Recode

I am not aware of the Recode having the capability you are asking about, however it is easily handled in an If() function

Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );

dt << New Column( "Stature",
	Character( 40 ),
	"Nominal",
	Formula(
		If(
			:age == 12 & :Height == 59, "short tween",
			:age == 12 & :height == 66, "Tall tween",
			:age == 17 & :height == 70, "Tall teenager",
			""
		)
	)
);
Jim

View solution in original post

2 REPLIES 2
txnelson
Super User

Re: Nested Recode

I am not aware of the Recode having the capability you are asking about, however it is easily handled in an If() function

Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );

dt << New Column( "Stature",
	Character( 40 ),
	"Nominal",
	Formula(
		If(
			:age == 12 & :Height == 59, "short tween",
			:age == 12 & :height == 66, "Tall tween",
			:age == 17 & :height == 70, "Tall teenager",
			""
		)
	)
);
Jim
sciguy
Level III

Re: Nested Recode

This worked perfectly. Should have gone with an if() function to begin with. Thank you.