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-77371%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3E%E4%BD%BF%E7%94%A8%20for%20%E5%BE%AA%E7%8E%AF%E7%94%9F%E6%88%90%E5%88%97%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-77371%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3E%3CP%3E%E6%82%A8%E5%A5%BD%EF%BC%8C%E6%88%91%E5%B0%9D%E8%AF%95%E4%BD%BF%E7%94%A8%E4%B8%8B%E4%B8%80%E4%B8%AA%20JSL%20%E8%84%9A%E6%9C%AC%E8%A1%8C%E7%94%9F%E6%88%90%E5%87%A0%E5%88%97%EF%BC%8C%E4%BD%86%E6%98%AF%E5%9C%A8%E8%BF%90%E8%A1%8C%E8%84%9A%E6%9C%AC%E6%97%B6%E6%95%B0%E6%8D%AE%E8%A1%A8%E4%B8%BA%E7%A9%BA%E7%99%BD%EF%BC%9A%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CPRE%3E%3CCODE%20class%3D%22%20language-jsl%22%3E%20For(i%3D0%2Ci%26lt%3B3%2Ci%2B%2B%2CNew%20Column(%20%22A%22%2C%20Numeric%2C%20Continuous%2C%20Format(%20%22Best%22%2C%2010%20)%2C%20Set%20Values(%20%5B1%2C%202%2C%203%2C%20.%5D%20)))%3C%2FCODE%3E%3C%2FPRE%3E%3CP%3E%E5%A6%82%E4%BD%95%E4%BF%AE%E5%A4%8D%EF%BC%9F%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-77385%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3E%E5%9B%9E%E5%A4%8D%EF%BC%9A%E4%BD%BF%E7%94%A8%20for%20%E5%BE%AA%E7%8E%AF%E7%94%9F%E6%88%90%E5%88%97%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-77385%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3E%3CP%3E%E5%90%8C%E6%A0%B7%EF%BC%8C%E5%85%88%E5%88%B6%E4%BD%9C%E8%A1%A8%E6%A0%BC%EF%BC%8C%E7%84%B6%E5%90%8E%E6%B7%BB%E5%8A%A0%E5%88%97%E3%80%82%E8%BF%99%E6%98%AF%E4%B8%80%E4%BA%9B%E5%8F%AF%E4%BB%A5%E6%BB%A1%E8%B6%B3%E6%82%A8%E8%A6%81%E6%B1%82%E7%9A%84%E4%BB%A3%E7%A0%81%EF%BC%88%E6%88%91%E8%AE%A4%E4%B8%BA%EF%BC%89%EF%BC%9A%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CPRE%3E%3CCODE%20class%3D%22%20language-jsl%22%3ENames%20default%20to%20here(%201%20)%3B%0A%0A%2F%2FMake%20the%20data%20table%0Adt%20%3D%20New%20Table(%20%22Tokens%22%2C%0A%20Add%20Rows(%203%20)%2C%0A%20New%20Column(%20%22Visual_ID%22%2C%20Character%2C%20Nominal%2C%20Set%20Values(%20%7B%2288%22%2C%20%2289%22%2C%20%2294%22%7D%20)%20)%2C%0A%20New%20Column(%20%22FF%22%2C%20Character%2C%20Nominal%2C%20Set%20Values(%20%7B%22Y83%22%2C%20%22YA8%22%2C%20%22654%22%7D%20)%20)%2C%0A%20New%20Column(%20%22Bipping%22%2C%0A%20%20Character%2C%0A%20%20Nominal%2C%0A%20%20Set%20Selected%2C%0A%20%20Set%20Values(%0A%20%20%20%7B%2219%7C19%7C19%7C16%7C14%7C16%7C19%7C18%7C18%7C21%7C17%7C20%7C20%7C19%7C19%7C20%7C17%7C18%7C18%22%2C%0A%20%20%20%2219%7C19%7C19%7C16%7C14%7C16%7C19%7C18%7C18%7C21%7C17%7C20%7C20%7C19%7C19%7C20%7C18%7C18%7C18%22%2C%0A%20%20%20%2219%7C18%7C18%7C18%7C17%7C18%7C16%7C18%7C18%7C19%7C21%7C19%7C19%7C18%7C18%7C17%7C16%7C16%7C17%22%7D%0A%20%20)%0A%20)%0A)%3B%0A%0A%2F%2FThen%20add%20columns%20to%20it.%0AFor(%20ii%20%3D%201%2C%20ii%26lt%3B19%2C%20ii%2B%2B%2C%20%0A%20dt%20%26lt%3B%26lt%3B%20New%20Column%20%20(%22My_Column_%22%20%7C%7C%20Char(ii)%2C%20%0A%20%20Character%2C%20%0A%20%20Nominal%2C%20%0A%20%20Formula(%0A%20%20%20%20Word(%20ii%2C%20As%20Column(%20Column(%20%22Bipping%22%20%20)%20)%2C%20%22%7C%22%20)%0A%20%20%20%0A%20%20%20%20)%0A%20%20%20%0A%20)%0A)%3B%3C%2FCODE%3E%3C%2FPRE%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-77384%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3E%E5%9B%9E%E5%A4%8D%EF%BC%9A%E4%BD%BF%E7%94%A8%20for%20%E5%BE%AA%E7%8E%AF%E7%94%9F%E6%88%90%E5%88%97%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-77384%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3E%3CP%3E%E4%BD%A0%E8%83%BD%E7%9C%8B%E7%9C%8B%E8%BF%99%E9%87%8C%E5%90%97%EF%BC%9A%3CA%20href%3D%22https%3A%2F%2Fcommunity.jmp.com%2Ft5%2FDiscussions%2FLoop-is-not-working%2Fm-p%2F77361%23M36165%22%20target%3D%22_blank%22%3E%20https%3A%2F%2Fcommunity.jmp.com%2Ft5%2FDiscussions%2FLoop-is-not-working%2Fmp%2F77361%23M36165%3C%2FA%3E%3CBR%20%2F%3E%3CBR%20%2F%3E%E5%9C%A8%E4%B8%8A%E9%9D%A2%E7%9A%84%E9%93%BE%E6%8E%A5%E4%B8%AD%EF%BC%8C%E6%88%91%E5%B0%9D%E8%AF%95%E5%88%B6%E4%BD%9C%E7%B1%BB%E4%BC%BC%E7%9A%84%E4%B8%9C%E8%A5%BF%EF%BC%8C%E4%BD%86%E5%AE%83%E4%B8%8D%E8%B5%B7%E4%BD%9C%E7%94%A8%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-77383%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3E%E5%9B%9E%E5%A4%8D%EF%BC%9A%E4%BD%BF%E7%94%A8%20for%20%E5%BE%AA%E7%8E%AF%E7%94%9F%E6%88%90%E5%88%97%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-77383%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3E%3CP%3E%E8%AF%AD%E6%B3%95%E7%9C%8B%E8%B5%B7%E6%9D%A5%E6%98%AF%E6%AD%A3%E7%A1%AE%E7%9A%84%EF%BC%8C%E6%89%80%E4%BB%A5%E6%88%91%E6%80%80%E7%96%91%E9%97%AE%E9%A2%98%E5%87%BA%E5%9C%A8%E6%82%A8%E4%BD%BF%E7%94%A8%E5%AE%83%E7%9A%84%E4%B8%8A%E4%B8%8B%E6%96%87%E4%B8%AD%E3%80%82%E8%A6%81%E5%AE%8C%E6%88%90%E8%BF%99%E9%A1%B9%E5%B7%A5%E4%BD%9C%EF%BC%8C%E9%A6%96%E5%85%88%E5%88%9B%E5%BB%BA%E4%B8%80%E4%B8%AA%E8%A1%A8%EF%BC%8C%E7%84%B6%E5%90%8E%E6%B7%BB%E5%8A%A0%E6%96%B0%E5%88%97%E3%80%82%E4%B8%BA%E7%A1%AE%E4%BF%9D%E5%9C%A8%E6%AD%A3%E7%A1%AE%E7%9A%84%E8%A1%A8%E4%B8%AD%E5%88%9B%E5%BB%BA%E5%88%97%EF%BC%8C%E8%AF%B7%E5%BC%95%E7%94%A8%E8%AF%A5%E8%A1%A8%E5%B9%B6%E5%90%91%E5%85%B6%E2%80%9C%E5%8F%91%E9%80%81%E2%80%9D%E6%96%B0%E5%88%97%E6%B6%88%E6%81%AF%EF%BC%8C%E5%A6%82%E4%B8%8B%E6%89%80%E7%A4%BA%EF%BC%9A%3C%2FP%3E%3CPRE%3E%3CCODE%20class%3D%22%20language-jsl%22%3ENames%20default%20to%20here(%201%20)%3B%0A%0A%2F%2FOpen%20a%20blank%20table%20and%20save%20a%20reference%20to%20it%0Adt%20%3D%20New%20Table(%20%22New%20Table%22%2C%20Add%20Rows(%200%20)%20)%3B%0A%0A%2F%2FAdd%20columns%20to%20the%20table%0AFor(%20i%3D0%2C%20i%26lt%3B3%2C%20i%2B%2B%2C%0A%20dt%20%26lt%3B%26lt%3B%20New%20Column(%20%22A%22%2C%20Numeric%2C%20Continuous%2C%20Format(%20%22Best%22%2C%2010%20)%2C%20Set%20Values(%20%5B1%2C%202%2C%203%2C%20.%5D%20))%0A)%3B%3C%2FCODE%3E%3C%2FPRE%3E%3C%2FLINGO-BODY%3E
Choose Language Hide Translation Bar
axcelenator1
Level III

Generating Columns with a for loop

Hello, I try to generate several columns with the next JSL script line but when running the script the data table is blank: 

 

	For(i=0,i<3,i++,New Column( "A", Numeric, Continuous, Format( "Best", 10 ), Set Values( [1, 2, 3, .] )))

How can it be fixed?

1 ACCEPTED SOLUTION

Accepted Solutions
ih
Super User (Alumni) ih
Super User (Alumni)

Re: Generating Columns with a for loop

Again, make the table first and then add the columns.  Here is some code that does what you want (I think):

 

Names default to here( 1 );

//Make the data table
dt = New Table( "Tokens",
	Add Rows( 3 ),
	New Column( "Visual_ID", Character, Nominal, Set Values( {"88", "89", "94"} ) ),
	New Column( "FF", Character, Nominal, Set Values( {"Y83", "YA8", "654"} ) ),
	New Column( "Bipping",
		Character,
		Nominal,
		Set Selected,
		Set Values(
			{"19|19|19|16|14|16|19|18|18|21|17|20|20|19|19|20|17|18|18",
			"19|19|19|16|14|16|19|18|18|21|17|20|20|19|19|20|18|18|18",
			"19|18|18|18|17|18|16|18|18|19|21|19|19|18|18|17|16|16|17"}
		)
	)
);

//Then add columns to it.
For( ii = 1, ii<19, ii++, 
	dt << New Column  ("My_Column_" || Char(ii), 
		Character, 
		Nominal, 
		Formula(
				Word( ii, As Column( Column( "Bipping"  ) ), "|" )
			
				)
			
	)
);

View solution in original post

3 REPLIES 3
ih
Super User (Alumni) ih
Super User (Alumni)

Re: Generating Columns with a for loop

The syntax looks correct so I suspect the issue is with the context that you are using it.  To make this work, first create a table and then your add new columns.  To ensure columns are created in the correct table, make a reference to that table and 'send' the New Column message to it, as shown below:

Names default to here( 1 );

//Open a blank table and save a reference to it
dt = New Table( "New Table", Add Rows( 0 ) );

//Add columns to the table
For( i=0, i<3, i++,
	dt << New Column( "A", Numeric, Continuous, Format( "Best", 10 ), Set Values( [1, 2, 3, .] ))
);
axcelenator1
Level III

Re: Generating Columns with a for loop

Can you look here please: https://community.jmp.com/t5/Discussions/Loop-is-not-working/m-p/77361#M36165

In the above link I try to make something similar but it not works

ih
Super User (Alumni) ih
Super User (Alumni)

Re: Generating Columns with a for loop

Again, make the table first and then add the columns.  Here is some code that does what you want (I think):

 

Names default to here( 1 );

//Make the data table
dt = New Table( "Tokens",
	Add Rows( 3 ),
	New Column( "Visual_ID", Character, Nominal, Set Values( {"88", "89", "94"} ) ),
	New Column( "FF", Character, Nominal, Set Values( {"Y83", "YA8", "654"} ) ),
	New Column( "Bipping",
		Character,
		Nominal,
		Set Selected,
		Set Values(
			{"19|19|19|16|14|16|19|18|18|21|17|20|20|19|19|20|17|18|18",
			"19|19|19|16|14|16|19|18|18|21|17|20|20|19|19|20|18|18|18",
			"19|18|18|18|17|18|16|18|18|19|21|19|19|18|18|17|16|16|17"}
		)
	)
);

//Then add columns to it.
For( ii = 1, ii<19, ii++, 
	dt << New Column  ("My_Column_" || Char(ii), 
		Character, 
		Nominal, 
		Formula(
				Word( ii, As Column( Column( "Bipping"  ) ), "|" )
			
				)
			
	)
);

Recommended Articles