cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
  • Learn how to build custom Python data connectors and further customize JMP’s Data Connector Framework with the Python Data Connector Demo, available now in the JMP Marketplace!
  • See how to create experiments to support product design and ID useful product features. Register for June 12 webinar, 2pm US Eastern Time.

Discussions

Solve problems, and share tips and tricks with other JMP users.
Choose Language Hide Translation Bar
minion
Level II

column switcher linked multiple platform

dt = Open( "$SAMPLE_DATA/Process Measurements.jmp" );

clear log();

colnames = dt << getcolumnnames(numeric,string);
colnames = Filter Each({name}, colnames, !Is Missing(Regex(lowercase(name), "^(process).*")));

print(colnames[1]);

New Window("reacher",
	H List Box(
		V List Box (
			dist = dt << Distribution(Continuous Distribution(Column(column(dt, colnames[1])),Process Capability( 0 )),Histograms Only),
			biv = Bivariate( Y(column(dt, colnames[1])), X(column(dt, colnames[1])) )
		),
		cs = dt << Column Switcher(:Process 1, colnames),
//		cs = dt << Column Switcher(colnames[1], colnames),
	)
);
cs << Link Platform( dist );
cs << Link Platform( biv );

Trying to script column switcher for arbitrary table.

 

Code above works.

 

However, when line16 is commented and line17 uncommented, column switcher does not work

 

Please help 

1 ACCEPTED SOLUTION

Accepted Solutions
jthi
Super User

Re: column switcher linked multiple platform

You might have to evaluate the colnames[1] in correct format to column switcher. Here is one option

Names Default To Here(1);

dt = Open("$SAMPLE_DATA/Process Measurements.jmp");

colnames = dt << getcolumnnames(numeric, string);
colnames = Filter Each({name}, colnames, !Is Missing(Regex(Lowercase(name), "^(process).*")));

Eval(EvalExpr(
	nw = New Window("reacher",
		H List Box(
			V List Box(
				dist = dt << Distribution(
					Continuous Distribution(Column(Eval(colnames[1])), Process Capability(0)),
					Histograms Only
				),
				biv = Bivariate(Y(Eval(colnames[1])), X(Eval(colnames[1])))
			),
			cs = dt << Column Switcher(Expr(NameExpr(AsColumn(dt, colnames[1]))), colnames)
		)
	);	
));

cs << Link Platform(dist);
cs << Link Platform(biv);
-Jarmo

View solution in original post

3 REPLIES 3
jthi
Super User

Re: column switcher linked multiple platform

You might have to evaluate the colnames[1] in correct format to column switcher. Here is one option

Names Default To Here(1);

dt = Open("$SAMPLE_DATA/Process Measurements.jmp");

colnames = dt << getcolumnnames(numeric, string);
colnames = Filter Each({name}, colnames, !Is Missing(Regex(Lowercase(name), "^(process).*")));

Eval(EvalExpr(
	nw = New Window("reacher",
		H List Box(
			V List Box(
				dist = dt << Distribution(
					Continuous Distribution(Column(Eval(colnames[1])), Process Capability(0)),
					Histograms Only
				),
				biv = Bivariate(Y(Eval(colnames[1])), X(Eval(colnames[1])))
			),
			cs = dt << Column Switcher(Expr(NameExpr(AsColumn(dt, colnames[1]))), colnames)
		)
	);	
));

cs << Link Platform(dist);
cs << Link Platform(biv);
-Jarmo
minion
Level II

Re: column switcher linked multiple platform

Thanks for the note.

If the column name has special characters in the name, the expression does not work

Example columns: "Process:USL=8:LSL=1.0"

jthi
Super User

Re: column switcher linked multiple platform

Which JMP version are you using?

Works fine for me (using JMP18.0.1)

jthi_0-1723057760049.png

jthi_1-1723057767404.png

View more...
Names Default To Here(1);

dt = Open("$SAMPLE_DATA/Process Measurements.jmp");

Column(dt, 1) << Set Name("Process:USL=8:LSL=1.0");


colnames = dt << getcolumnnames(numeric, string);
colnames = Filter Each({name}, colnames, !Is Missing(Regex(Lowercase(name), "^(process).*")));

Eval(
	Eval Expr(
		nw = New Window("reacher",
			H List Box(
				V List Box(
					dist = dt << Distribution(
						Continuous Distribution(
							Column(Eval(colnames[1])),
							Process Capability(0)
						),
						Histograms Only
					),
					biv = Bivariate(Y(Eval(colnames[1])), X(Eval(colnames[1])))
				),
				cs = dt << Column Switcher(
					Expr(
						Name Expr(As Column(dt, colnames[1]))
					),
					colnames
				)
			)
		)
	)
);

cs << Link Platform(dist);
cs << Link Platform(biv);
-Jarmo

Recommended Articles