cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Discussions

Solve problems, and share tips and tricks with other JMP users.
%3CLINGO-SUB%20id%3D%22lingo-sub-377086%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3E%EC%97%B4%20%EC%82%AC%EC%96%91%20%EC%A0%9C%ED%95%9C%EC%97%90%20%EB%94%B0%EB%9D%BC%20%EC%97%B4%20%EA%B0%92%20%EB%B3%80%EA%B2%BD%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-377086%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3E%3CP%3E%EB%95%8C%EB%95%8C%EB%A1%9C%20%EA%B0%92%EC%9D%84%20360%EB%8F%84%20%EB%96%A8%EC%96%B4%20%EB%9C%A8%EB%A6%AC%EB%8A%94%20%EA%B2%83%EC%9D%84%20%EC%A2%8B%EC%95%84%ED%95%98%EB%8A%94%20%EC%9C%84%EC%83%81%20%ED%85%8C%EC%8A%A4%ED%8A%B8%EA%B0%80%20%EC%9E%88%EC%8A%B5%EB%8B%88%EB%8B%A4.%20%ED%85%8C%EC%9D%B4%EB%B8%94%20%EC%97%B4%20%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%A5%BC%20%EC%82%B4%ED%8E%B4%EB%B3%B4%EA%B3%A0%20%ED%8F%89%EA%B7%A0%EC%9D%84%20%EC%B7%A8%ED%95%9C%20%EB%8B%A4%EC%9D%8C%20LSL%20%2F%20USL%EA%B3%BC%20%EB%B9%84%EA%B5%90%ED%95%A0%20%EC%88%98%EC%9E%88%EB%8A%94%20%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%EB%A5%BC%20%EC%9B%90%ED%95%A9%EB%8B%88%EB%8B%A4.%20%ED%8F%89%EA%B7%A0%EC%9D%98%20%EB%B6%80%ED%98%B8%EA%B0%80%20%EC%82%AC%EC%96%91%20%ED%95%9C%EA%B3%84%EC%99%80%20%EB%B0%98%EB%8C%80%EC%9D%B4%EB%A9%B4%20%ED%95%B4%EB%8B%B9%20%EA%B0%92%EC%97%90%20360%EC%9D%84%20%EB%8D%94%ED%95%A9%EB%8B%88%EB%8B%A4.%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3E%ED%85%8C%EC%8A%A4%ED%84%B0%EA%B0%80%20%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%A5%BC%20%EC%B2%98%EB%A6%AC%ED%95%98%EB%8A%94%20%EB%B0%A9%EC%8B%9D%EC%9C%BC%EB%A1%9C%20%EC%9D%B8%ED%95%B4%20%EB%8B%B4%EC%9A%94%20If%20(%3A%20test%20%26lt%3B0%2C%20t1%20%3D%20%3A%20column%20%2B%20360%3B%20t1%3B)%EC%9D%84%20%EC%88%98%ED%96%89%20%ED%95%A0%20%EC%88%98%20%EC%97%86%EC%8A%B5%EB%8B%88%EB%8B%A4.%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3E%EC%83%98%ED%94%8C%20%ED%85%8C%EC%9D%B4%EB%B8%94%EC%9D%84%20%EC%B2%A8%EB%B6%80%ED%96%88%EC%9C%BC%EB%A9%B0%20%EB%A7%88%EC%A7%80%EB%A7%89%20%EB%91%90%20%EC%97%B4%EC%9D%80%20%EB%82%B4%20%EB%AC%B8%EC%A0%9C%EA%B0%80%EC%9E%88%EB%8A%94%20%EA%B3%B3%EC%9E%85%EB%8B%88%EB%8B%A4.%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3E%EB%AF%B8%EB%A6%AC%20%EA%B0%90%EC%82%AC%EB%93%9C%EB%A6%BD%EB%8B%88%EB%8B%A4%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-LABS%20id%3D%22lingo-labs-377086%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3E%3CLINGO-LABEL%3E%EB%8D%B0%EC%9D%B4%ED%84%B0%20%ED%85%8C%EC%9D%B4%EB%B8%94%3C%2FLINGO-LABEL%3E%3CLINGO-LABEL%3E%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8C%85%3C%2FLINGO-LABEL%3E%3C%2FLINGO-LABS%3E%3CLINGO-SUB%20id%3D%22lingo-sub-378999%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3ERe%20%3A%20%EC%97%B4%20%EC%82%AC%EC%96%91%20%EC%A0%9C%ED%95%9C%EC%97%90%20%EB%94%B0%EB%9D%BC%20%EC%97%B4%20%EA%B0%92%20%EB%B3%80%EA%B2%BD%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-378999%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3E%3CP%3E%EB%84%AC%EC%8A%A8%20%EC%94%A8%20%EA%B0%90%EC%82%AC%ED%95%A9%EB%8B%88%EB%8B%A4.%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3E%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%EB%A5%BC%20%EC%95%BD%EA%B0%84%20%EC%88%98%EC%A0%95%ED%95%B4%EC%95%BC%ED%96%88%EC%8A%B5%EB%8B%88%EB%8B%A4.%20%EA%B3%B1%EC%85%88%EC%9D%84%20%EB%8D%A7%EC%85%88%EC%9C%BC%EB%A1%9C%20%EB%B3%80%EA%B2%BD%ED%95%98%EA%B3%A0%20%ED%8F%89%EA%B7%A0%EC%9D%84%20%EC%A4%91%EC%95%99%EA%B0%92%EC%9C%BC%EB%A1%9C%20%EB%B3%80%EA%B2%BD%ED%96%88%EC%8A%B5%EB%8B%88%EB%8B%A4.%20%EC%9B%90%EB%9E%98%20%EA%B2%8C%EC%8B%9C%EB%AC%BC%EC%9D%84%20%EB%A7%8C%EB%93%A4%20%EB%95%8C%20%EC%B9%98%EB%AA%85%EC%A0%81%EC%9D%B8%20%EC%8B%A4%ED%8C%A8%EB%A5%BC%20%EC%84%A4%EB%AA%85%ED%95%98%EC%A7%80%20%EC%95%8A%EC%95%98%EC%8A%B5%EB%8B%88%EB%8B%A4.%20%EC%97%B4%2040%EA%B3%BC%2041%EC%97%90%EB%8A%94%20LSL%EA%B3%BC%20USL%20%EC%82%AC%EC%9D%B4%EC%97%90%20%EC%9E%88%EC%A7%80%20%EC%95%8A%EC%9D%80%20col%20%ED%8F%89%EA%B7%A0%20%EA%B0%92%EC%9D%B4%20%EC%9E%88%EC%8A%B5%EB%8B%88%EB%8B%A4.%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CPRE%20class%3D%22lia-code-sample%20language-markup%22%3E%3CCODE%3ENames%20Default%20To%20Here(%201%20)%3B%0Adt%20%3D%20Current%20Data%20Table()%3B%0A%0AcolList%20%3D%20dt%20%26lt%3B%26lt%3B%20get%20column%20names(%20continuous%2C%20string%20)%3B%0A%0AFor(%20i%20%3D%201%2C%20i%20%26lt%3B%3D%20N%20Items(%20colList%20)%2C%20i%2B%2B%2C%0A%20specs%20%3D%20Column(%20dt%2C%20colList%5Bi%5D%20)%20%26lt%3B%26lt%3B%20get%20property(%20%22spec%20limits%22%20)%3B%0A%20If(%20Is%20Missing(%20specs%5B%22LSL%22%5D%20)%20%3D%3D%200%20%26amp%3B%20Is%20Missing(%20specs%5B%22USL%22%5D%20)%20%3D%3D%200%2C%0A%20%20If(%20!(specs%5B%22LSL%22%5D%20%26lt%3B%3D%20Col%20Median(%20Column(%20dt%2C%20colList%5Bi%5D%20)%20)%20%26lt%3B%3D%20specs%5B%22USL%22%5D)%2C%0A%20%20%20For%20Each%20Row(%20As%20Column(%20dt%2C%20colList%5Bi%5D%20)%20%3D%20360%20%2B%20As%20Column(%20dt%2C%20colList%5Bi%5D%20)%20)%0A%20%20)%0A%20)%3B%0A)%3B%3C%2FCODE%3E%3C%2FPRE%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3C%2FLINGO-BODY%3E
Choose Language Hide Translation Bar
Yngeinstn
Level IV

Changing column values based on the column spec limit

We have a phase test that sometimes likes to flop the value by 360 degrees. I would like a script that can look through the table column data, take an average and then compare it to the LSL / USL. If the sign of the average is opposite the spec limit add 360 to that value.

 

I can't do a blanket If( :test < 0, t1 = :column + 360; t1; ) due to the way the tester handles the data.

 

I have attached a sample table and the last two columns are where my issue is.

 

Thanks in advance

1 ACCEPTED SOLUTION

Accepted Solutions
txnelson
Super User

Re: Changing column values based on the column spec limit

See if this little script gives you what you want

Names Default To Here( 1 );
dt = Current Data Table();

colList = dt << get column names( continuous, string );

For( i = 1, i <= N Items( colList ), i++,
	specs = Column( dt, colList[i] ) << get property( "spec limits" );
	If( Is Missing( specs["LSL"] ) == 0 & Is Missing( specs["USL"] ) == 0,
		If( !(specs["LSL"] <= Col Mean( Column( dt, colList[i] ) ) <= specs["USL"]),
			For Each Row( As Column( dt, colList[i] ) = -1 * As Column( dt, colList[i] ) )
		)
	);
);
Jim

View solution in original post

2 REPLIES 2
txnelson
Super User

Re: Changing column values based on the column spec limit

See if this little script gives you what you want

Names Default To Here( 1 );
dt = Current Data Table();

colList = dt << get column names( continuous, string );

For( i = 1, i <= N Items( colList ), i++,
	specs = Column( dt, colList[i] ) << get property( "spec limits" );
	If( Is Missing( specs["LSL"] ) == 0 & Is Missing( specs["USL"] ) == 0,
		If( !(specs["LSL"] <= Col Mean( Column( dt, colList[i] ) ) <= specs["USL"]),
			For Each Row( As Column( dt, colList[i] ) = -1 * As Column( dt, colList[i] ) )
		)
	);
);
Jim
Yngeinstn
Level IV

Re: Changing column values based on the column spec limit

Thank you Mr. Nelson.

 

I had to modify the script a little bit. I changed the multiplication to addition and changed the Mean to Median. I didn't account for catastrophic failures when i made the original post. Columns 40 and 41 had col mean values that were not between the LSL and USL.

 

Names Default To Here( 1 );
dt = Current Data Table();

colList = dt << get column names( continuous, string );

For( i = 1, i <= N Items( colList ), i++,
	specs = Column( dt, colList[i] ) << get property( "spec limits" );
	If( Is Missing( specs["LSL"] ) == 0 & Is Missing( specs["USL"] ) == 0,
		If( !(specs["LSL"] <= Col Median( Column( dt, colList[i] ) ) <= specs["USL"]),
			For Each Row( As Column( dt, colList[i] ) = 360 + As Column( dt, colList[i] ) )
		)
	);
);

 

 

Recommended Articles