cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
  • JMP will suspend normal business operations for our Winter Holiday beginning on Wednesday, Dec. 24, 2025, at 5:00 p.m. ET (2:00 p.m. ET for JMP Accounts Receivable).
    Regular business hours will resume at 9:00 a.m. EST on Friday, Jan. 2, 2026.
  • We’re retiring the File Exchange at the end of this year. The JMP Marketplace is now your destination for add-ins and extensions.

Discussions

Solve problems, and share tips and tricks with other JMP users.
%3CLINGO-SUB%20id%3D%22lingo-sub-415358%22%20slang%3D%22en-US%22%20mode%3D%22UPDATE%22%3EFor%20%EB%A3%A8%ED%94%84%EB%A5%BC%20%ED%86%B5%ED%95%B4%20%EB%8D%B0%EC%9D%B4%ED%84%B0%20%ED%85%8C%EC%9D%B4%EB%B8%94%20A%EC%97%90%EC%84%9C%20%ED%95%9C%20%EB%B3%B4%EA%B3%A0%EC%84%9C%EB%A5%BC%20%EC%B6%94%EA%B0%80%ED%95%9C%20%EB%8B%A4%EC%9D%8C%20%EB%8D%B0%EC%9D%B4%ED%84%B0%20%ED%85%8C%EC%9D%B4%EB%B8%94%20B%EC%97%90%EC%84%9C%20%EB%8B%A4%EB%A5%B8%20%EB%B3%B4%EA%B3%A0%EC%84%9C%EB%A5%BC%20%EC%B6%94%EA%B0%80%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%3C%2FLINGO-SUB%3E%0A%20%20%3CLINGO-BODY%20id%3D%22lingo-body-415358%22%20slang%3D%22en-US%22%20mode%3D%22UPDATE%22%3E%0A%20%20%20%3CP%3EA%EC%99%80%20B%EB%9D%BC%EB%8A%94%20%EB%91%90%20%EA%B0%9C%EC%9D%98%20%EC%84%9C%EB%A1%9C%20%EB%8B%A4%EB%A5%B8%20%EB%8D%B0%EC%9D%B4%ED%84%B0%20%ED%85%8C%EC%9D%B4%EB%B8%94%EC%9D%B4%20%EC%9E%88%EC%8A%B5%EB%8B%88%EB%8B%A4.%20%EA%B0%81%20%EB%8D%B0%EC%9D%B4%ED%84%B0%20%ED%85%8C%EC%9D%B4%EB%B8%94%EC%97%90%EC%84%9C%20%ED%95%9C%20%EC%97%B4%EC%97%90%20%EB%B9%84%EC%8A%B7%ED%95%9C%20%EB%B3%80%EC%88%98%EA%B0%80%20%EC%9E%88%EC%8A%B5%EB%8B%88%EB%8B%A4.%3C%2FP%3E%0A%20%20%20%3CP%3E%EB%B3%84%EB%8F%84%EC%9D%98%20For%20%EB%A3%A8%ED%94%84%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC%20%EB%B9%84%EC%8A%B7%ED%95%9C%20%EB%B3%80%EC%88%98%EB%A5%BC%20%EA%B0%80%EC%A7%84%20%EC%97%B4%EB%B3%84%EB%A1%9C%20%EA%B0%81%20%EB%8D%B0%EC%9D%B4%ED%84%B0%20%ED%85%8C%EC%9D%B4%EB%B8%94%20A%EC%99%80%20B%EC%97%90%EC%84%9C%20%ED%95%98%EC%9C%84%20%EC%A7%91%ED%95%A9%EC%9D%84%20%EB%A7%8C%EB%93%A4%EC%96%B4%20%ED%85%8C%EC%9D%B4%EB%B8%94%20%EB%B3%B4%EA%B3%A0%EC%84%9C%EB%A5%BC%20%EB%A7%8C%EB%93%A4%EA%B3%A0%20%ED%95%98%EB%82%98%EC%9D%98%20%EC%83%88%20%EC%B0%BD%EC%97%90%20%EC%B6%94%EA%B0%80%ED%95%A9%EB%8B%88%EB%8B%A4.%3C%2FP%3E%0A%20%20%20%3CP%3E%ED%95%98%EC%9C%84%20%EC%A7%91%ED%95%A9%20%EB%8D%B0%EC%9D%B4%ED%84%B0%20%ED%85%8C%EC%9D%B4%EB%B8%94%20A%EC%97%90%EC%84%9C%20%EC%83%9D%EC%84%B1%EB%90%9C%20%EB%AA%A8%EB%93%A0%20%ED%85%8C%EC%9D%B4%EB%B8%94%20%EB%B3%B4%EA%B3%A0%EC%84%9C%EA%B0%80%20%EC%83%88%20%EC%B0%BD%EC%97%90%20%EC%B6%94%EA%B0%80%EB%90%98%EA%B3%A0%2C%20%EA%B7%B8%20%EB%92%A4%EC%97%90%20%ED%95%98%EC%9C%84%20%EC%A7%91%ED%95%A9%20%EB%8D%B0%EC%9D%B4%ED%84%B0%20%ED%85%8C%EC%9D%B4%EB%B8%94%20B%EC%97%90%EC%84%9C%20%EC%83%9D%EC%84%B1%EB%90%9C%20%EB%AA%A8%EB%93%A0%20%ED%85%8C%EC%9D%B4%EB%B8%94%20%EB%B3%B4%EA%B3%A0%EC%84%9C%EA%B0%80%20%EC%B6%94%EA%B0%80%EB%90%98%EB%8A%94%20%EA%B2%83%EC%9D%84%20%EC%95%8C%20%EC%88%98%20%EC%9E%88%EC%8A%B5%EB%8B%88%EB%8B%A4.%3C%2FP%3E%0A%20%20%20%3CP%3E%EC%A0%9C%EA%B0%80%20%EC%9B%90%ED%95%98%EB%8A%94%20%EA%B2%83%EC%9D%80%20%ED%95%98%EC%9C%84%20%EC%A7%91%ED%95%A9%20%EB%8D%B0%EC%9D%B4%ED%84%B0%20%ED%85%8C%EC%9D%B4%EB%B8%94%20A%EC%97%90%EC%84%9C%20%ED%95%98%EB%82%98%EC%9D%98%20%ED%85%8C%EC%9D%B4%EB%B8%94%20%EB%B3%B4%EA%B3%A0%EC%84%9C%EB%A5%BC%20%EC%B6%94%EA%B0%80%ED%95%9C%20%EB%8B%A4%EC%9D%8C%2C%20%EA%B0%81%20%EB%B3%80%EC%88%98%20%EC%88%98%EC%A4%80%EC%97%90%20%EB%8C%80%ED%95%B4%20%ED%95%98%EC%9C%84%20%EC%A7%91%ED%95%A9%20%EB%8D%B0%EC%9D%B4%ED%84%B0%20%ED%85%8C%EC%9D%B4%EB%B8%94%20B%EC%97%90%EC%84%9C%20%ED%85%8C%EC%9D%B4%EB%B8%94%20%EB%B3%B4%EA%B3%A0%EC%84%9C%EB%A5%BC%20%EC%B6%94%EA%B0%80%ED%95%98%EB%8A%94%20%EA%B2%83%EC%9E%85%EB%8B%88%EB%8B%A4.%3C%2FP%3E%0A%20%20%20%3CBR%20%2F%3E%0A%20%20%20%3CP%3E%EC%BD%94%EB%93%9C%EB%8A%94%20%EC%96%B4%EB%96%BB%EA%B2%8C%20%EC%9E%91%EC%84%B1%ED%95%B4%EC%95%BC%20%ED%95%98%EB%82%98%EC%9A%94%3F%3C%2FP%3E%0A%20%20%20%3CBR%20%2F%3E%0A%20%20%20%3CP%3E%EC%9D%B4%EB%A5%BC%20%EC%84%A4%EB%AA%85%ED%95%98%EA%B8%B0%20%EC%9C%84%ED%95%B4%20Big%20Class%EC%99%80%20Big%20Class%20Families%20%EB%8D%B0%EC%9D%B4%ED%84%B0%20%EC%84%B8%ED%8A%B8%EB%A5%BC%20%EC%98%88%EB%A1%9C%20%EB%93%A4%EC%96%B4%EB%B3%B4%EA%B2%A0%EC%8A%B5%EB%8B%88%EB%8B%A4.%3C%2FP%3E%0A%20%20%20%3CPRE%3E%3CCODE%20class%3D%22%20language-jsl%22%3Edt1%20%3D%20Open(%20%22%24SAMPLE_DATA%2FBig%20Class.jmp%22%20)%3B%0Adt2%20%3D%20Open(%20%22%24SAMPLE_DATA%2FBig%20Class%20Families.jmp%22%20)%3B%0A%0Avb%20%3D%20V%20List%20Box()%3B%0Alistdt1%20%3D%20%7B%7D%3B%0Alistdt2%20%3D%20%7B%7D%3B%0Acoldt1%20%3D%20Column%20(dt1%2C%20%22age%22)%3B%0Acoldt2%20%3D%20Column%20(dt2%2C%20%22age%22)%3B%0Acolleveldt1%20%3D%20Associative%20Array(coldt1)%20%26lt%3B%26lt%3B%20Get%20Keys%3B%0Acolleveldt2%20%3D%20Associative%20Array(coldt1)%20%26lt%3B%26lt%3B%20Get%20Keys%3B%0A%0AFor%20(i%3D1%2C%20i%20%26lt%3B%3DN%20Items(colleveldt1)%2C%20i%2B%2B%2C%0A%09dt1row%20%3D%20dt1%20%26lt%3B%26lt%3B%20Get%20Rows%20Where(%3Aage%20%3D%3D%20colleveldt1%5Bi%5D)%3B%0A%09listdt1%5Bi%5D%20%3D%20dt1%20%26lt%3B%26lt%3B%20Subset(Rows(dt1row))%3B%0A%09tb%20%3D%20listdt1%5Bi%5D%26lt%3B%26lt%3B%20Get%20As%20Report%3B%0A%09vb%20%26lt%3B%26lt%3B%20Append%20(Table%20Box(tb))%3B%0A%0A)%3B%0A%09%0AFor%20(i%3D1%2C%20i%20%26lt%3B%3DN%20Items(colleveldt2)%2C%20i%2B%2B%2C%0A%09dt2row%20%3D%20dt2%20%26lt%3B%26lt%3B%20Get%20Rows%20Where(%3Aage%20%3D%3D%20colleveldt2%5Bi%5D)%3B%0A%09listdt2%5Bi%5D%20%3D%20dt2%20%26lt%3B%26lt%3B%20Subset(Rows(dt2row))%3B%0A%09tb%20%3D%20listdt2%5Bi%5D%26lt%3B%26lt%3B%20Get%20As%20Report%3B%0A%09vb%20%26lt%3B%26lt%3B%20Append%20(Table%20Box(tb))%3B%0A%09%0A%09%0A)%3B%0A%0ANew%20Window(%22Report%22%2C%20vb)%3B%3C%2FCODE%3E%3C%2FPRE%3E%0A%20%20%20%3CBR%20%2F%3E%0A%20%20%20%3CBR%20%2F%3E%0A%20%20%3C%2FLINGO-BODY%3E%0A%20%20%3CLINGO-LABS%20id%3D%22lingo-labs-415358%22%20slang%3D%22en-US%22%20mode%3D%22UPDATE%22%3E%0A%20%20%20%3CLINGO-LABEL%3E%EB%8C%80%EB%9F%89%20%EB%A7%9E%EC%B6%A4%ED%99%94%3C%2FLINGO-LABEL%3E%0A%20%20%3C%2FLINGO-LABS%3E%0A%20%0A%3CLINGO-SUB%20id%3D%22lingo-sub-415450%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3ERe%3A%20For%20%EB%A3%A8%ED%94%84%EB%A5%BC%20%ED%86%B5%ED%95%B4%20%EB%8D%B0%EC%9D%B4%ED%84%B0%20%ED%85%8C%EC%9D%B4%EB%B8%94%20A%EC%9D%98%20%EB%B3%B4%EA%B3%A0%EC%84%9C%20%ED%95%98%EB%82%98%EB%A5%BC%20%EC%B6%94%EA%B0%80%ED%95%9C%20%EB%8B%A4%EC%9D%8C%20%EB%8D%B0%EC%9D%B4%ED%84%B0%20%ED%85%8C%EC%9D%B4%EB%B8%94%20B%EC%9D%98%20%EB%8B%A4%EB%A5%B8%20%EB%B3%B4%EA%B3%A0%EC%84%9C%EB%A5%BC%20%EC%B6%94%EA%B0%80%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-415450%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3E%3CP%3EJSL%EC%9D%98%20%EA%B0%84%EB%8B%A8%ED%95%9C%20%EC%9D%B4%EB%8F%99%EC%9C%BC%EB%A1%9C%20%EC%9B%90%ED%95%98%EB%8A%94%20%EA%B2%83%EC%9D%84%20%EC%96%BB%EC%9D%84%20%EC%88%98%20%EC%9E%88%EC%8A%B5%EB%8B%88%EB%8B%A4.%3C%2FP%3E%0A%3CPRE%3E%3CCODE%20class%3D%22%20language-jsl%22%3ENames%20Default%20To%20Here(%201%20)%3B%0A%0Adt1%20%3D%20Open(%20%22%24SAMPLE_DATA%2FBig%20Class.jmp%22%20)%3B%0Adt2%20%3D%20Open(%20%22%24SAMPLE_DATA%2FBig%20Class%20Families.jmp%22%20)%3B%0A%0Avb%20%3D%20V%20List%20Box()%3B%0Alistdt1%20%3D%20%7B%7D%3B%0Alistdt2%20%3D%20%7B%7D%3B%0Acoldt1%20%3D%20Column%20(dt1%2C%20%22age%22)%3B%0Acoldt2%20%3D%20Column%20(dt2%2C%20%22age%22)%3B%0Acolleveldt1%20%3D%20Associative%20Array(coldt1)%20%26lt%3B%26lt%3B%20Get%20Keys%3B%0Acolleveldt2%20%3D%20Associative%20Array(coldt1)%20%26lt%3B%26lt%3B%20Get%20Keys%3B%0A%0AFor%20(i%3D1%2C%20i%20%26lt%3B%3DN%20Items(colleveldt1)%2C%20i%2B%2B%2C%0A%20dt1row%20%3D%20dt1%20%26lt%3B%26lt%3B%20Get%20Rows%20Where(%3Aage%20%3D%3D%20colleveldt1%5Bi%5D)%3B%0A%20listdt1%5Bi%5D%20%3D%20dt1%20%26lt%3B%26lt%3B%20Subset(Rows(dt1row)%2Cinvisible)%3B%0A%20tb%20%3D%20listdt1%5Bi%5D%26lt%3B%26lt%3B%20Get%20As%20Report%3B%0A%20vb%20%26lt%3B%26lt%3B%20Append%20(Table%20Box(tb))%3B%0Adt2row%20%3D%20dt2%20%26lt%3B%26lt%3B%20Get%20Rows%20Where(%3Aage%20%3D%3D%20colleveldt2%5Bi%5D)%3B%0A%20listdt2%5Bi%5D%20%3D%20dt2%20%26lt%3B%26lt%3B%20Subset(Rows(dt2row)%2Cinvisible)%3B%0A%20tb%20%3D%20listdt2%5Bi%5D%26lt%3B%26lt%3B%20Get%20As%20Report%3B%0A%20vb%20%26lt%3B%26lt%3B%20Append%20(Table%20Box(tb))%3B%0A)%3B%0A%0ANew%20Window(%22Report%22%2C%20vb)%3B%3C%2FCODE%3E%3C%2FPRE%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-415519%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3ERe%3A%20For%20%EB%A3%A8%ED%94%84%EB%A5%BC%20%ED%86%B5%ED%95%B4%20%EB%8D%B0%EC%9D%B4%ED%84%B0%20%ED%85%8C%EC%9D%B4%EB%B8%94%20A%EC%9D%98%20%EB%B3%B4%EA%B3%A0%EC%84%9C%20%ED%95%98%EB%82%98%EB%A5%BC%20%EC%B6%94%EA%B0%80%ED%95%98%EA%B3%A0%20%EB%8D%B0%EC%9D%B4%ED%84%B0%20%ED%85%8C%EC%9D%B4%EB%B8%94%20B%EC%9D%98%20%EB%8B%A4%EB%A5%B8%20%EB%B3%B4%EA%B3%A0%EC%84%9C%EB%A5%BC%20%EC%B6%94%EA%B0%80%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-415519%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%EA%B0%90%EC%82%AC%ED%95%B4%EC%9A%94.%3C%2FLINGO-BODY%3E
Choose Language Hide Translation Bar
bzanos
Level III

How to Append One Report from Data Table A followed by Another Report from Data Table B through For Loop

I have two different data tables, A and B. There is one column from each data table has similar variable.

I create subset from each data table A and B by column that has similar variable using separate For loop to create table report and append it into one new window.

I notice that all the table reports created from subset data table A are appended into new window and followed by all the table reports from subset data table B. 

What I want is to append one table report from subset data table A followed by table report from subset data table B for each variable level.

 

How should I write the code?

 

I am using Big Class and Big Class Families data set as an example to illustrate this.

dt1 = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt2 = Open( "$SAMPLE_DATA/Big Class Families.jmp" );

vb = V List Box();
listdt1 = {};
listdt2 = {};
coldt1 = Column (dt1, "age");
coldt2 = Column (dt2, "age");
colleveldt1 = Associative Array(coldt1) << Get Keys;
colleveldt2 = Associative Array(coldt1) << Get Keys;

For (i=1, i <=N Items(colleveldt1), i++,
	dt1row = dt1 << Get Rows Where(:age == colleveldt1[i]);
	listdt1[i] = dt1 << Subset(Rows(dt1row));
	tb = listdt1[i]<< Get As Report;
	vb << Append (Table Box(tb));

);
	
For (i=1, i <=N Items(colleveldt2), i++,
	dt2row = dt2 << Get Rows Where(:age == colleveldt2[i]);
	listdt2[i] = dt2 << Subset(Rows(dt2row));
	tb = listdt2[i]<< Get As Report;
	vb << Append (Table Box(tb));
	
	
);

New Window("Report", vb);

 

 

1 ACCEPTED SOLUTION

Accepted Solutions
txnelson
Super User

Re: How to Append One Report from Data Table A followed by Another Report from Data Table B through For Loop

A simple moving of the JSL gets you what you want

Names Default To Here( 1 );

dt1 = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt2 = Open( "$SAMPLE_DATA/Big Class Families.jmp" );

vb = V List Box();
listdt1 = {};
listdt2 = {};
coldt1 = Column (dt1, "age");
coldt2 = Column (dt2, "age");
colleveldt1 = Associative Array(coldt1) << Get Keys;
colleveldt2 = Associative Array(coldt1) << Get Keys;

For (i=1, i <=N Items(colleveldt1), i++,
	dt1row = dt1 << Get Rows Where(:age == colleveldt1[i]);
	listdt1[i] = dt1 << Subset(Rows(dt1row),invisible);
	tb = listdt1[i]<< Get As Report;
	vb << Append (Table Box(tb));
dt2row = dt2 << Get Rows Where(:age == colleveldt2[i]);
	listdt2[i] = dt2 << Subset(Rows(dt2row),invisible);
	tb = listdt2[i]<< Get As Report;
	vb << Append (Table Box(tb));
);

New Window("Report", vb);
Jim

View solution in original post

2 REPLIES 2
txnelson
Super User

Re: How to Append One Report from Data Table A followed by Another Report from Data Table B through For Loop

A simple moving of the JSL gets you what you want

Names Default To Here( 1 );

dt1 = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt2 = Open( "$SAMPLE_DATA/Big Class Families.jmp" );

vb = V List Box();
listdt1 = {};
listdt2 = {};
coldt1 = Column (dt1, "age");
coldt2 = Column (dt2, "age");
colleveldt1 = Associative Array(coldt1) << Get Keys;
colleveldt2 = Associative Array(coldt1) << Get Keys;

For (i=1, i <=N Items(colleveldt1), i++,
	dt1row = dt1 << Get Rows Where(:age == colleveldt1[i]);
	listdt1[i] = dt1 << Subset(Rows(dt1row),invisible);
	tb = listdt1[i]<< Get As Report;
	vb << Append (Table Box(tb));
dt2row = dt2 << Get Rows Where(:age == colleveldt2[i]);
	listdt2[i] = dt2 << Subset(Rows(dt2row),invisible);
	tb = listdt2[i]<< Get As Report;
	vb << Append (Table Box(tb));
);

New Window("Report", vb);
Jim
bzanos
Level III

Re: How to Append One Report from Data Table A followed by Another Report from Data Table B through For Loop

Thanks.

Recommended Articles