cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
The Discovery Summit 2025 Call for Content is open! Submit an abstract today to present at our premier analytics conference.
Choose Language Hide Translation Bar
lala
Level VIII

Can simplify the script when opening text files with JSL?

Hello!

For example, if I import a text file like this, if my text file has a large number of columns, 

dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt << Save( "D:\Big.txt" );
Close( dt, nosave );
dt = Open(
	"D:\Big.txt",
	Charset( "gb2312" ),
	columns(
		New Column( "name", Character, "Nominal" ),
		New Column( "age", Numeric, "Continuous", Format( "Best", 12 ) ),
		New Column( "sex", Character, "Nominal" ),
		New Column( "height", Numeric, "Continuous", Format( "Best", 12 ) ),
		New Column( "weight", Numeric, "Continuous", Format( "Best", 12 ) )
	),
	Import Settings(
		End Of Line( CRLF, CR, LF ),
		End Of Field( Comma, CSV( 0 ) ),
		Strip Quotes( 1 ),
		Use Apostrophe as Quotation Mark( 0 ),
		Use Regional Settings( 0 ),
		Scan Whole File( 1 ),
		Treat empty columns as numeric( 0 ),
		CompressNumericColumns( 0 ),
		CompressCharacterColumns( 0 ),
		CompressAllowListCheck( 0 ),
		Labels( 1 ),
		Column Names Start( 1 ),
		Data Starts( 2 ),
		Lines To Read( "All" ),
		Year Rule( "20xx" )
	)
);

can these repeated letters be replaced by variables?

 

abc="Numeric, \!"Continuous\!", Format( \!"Best\!", 12 )"

dt = Open(
	"D:\Big.txt",
	Charset( "gb2312" ),
	columns(
		New Column( "name", Character, "Nominal" ),
		New Column( "age",abc ),
		New Column( "sex", Character, "Nominal" ),
		New Column( "height",abc ),
		New Column( "weight",abc )
	),
	Import Settings(
		End Of Line( CRLF, CR, LF ),
		End Of Field( Comma, CSV( 0 ) ),
		Strip Quotes( 1 ),
		Use Apostrophe as Quotation Mark( 0 ),
		Use Regional Settings( 0 ),
		Scan Whole File( 1 ),
		Treat empty columns as numeric( 0 ),
		CompressNumericColumns( 0 ),
		CompressCharacterColumns( 0 ),
		CompressAllowListCheck( 0 ),
		Labels( 1 ),
		Column Names Start( 1 ),
		Data Starts( 2 ),
		Lines To Read( "All" ),
		Year Rule( "20xx" )
	)
);

??

Thanks!

 

 

1 ACCEPTED SOLUTION

Accepted Solutions
David_Burnham
Super User (Alumni)

Re: Can simplify the script when opening text files with JSL?

You can dramatically simplify the script - you just need to experiment with what is required.  I would always take out the column references and process them after the import, for e3xample:

 

dt = Open("$DOWNLOADS/Big Class.txt");
column(dt,"age") << set modeling type("nominal");
-Dave

View solution in original post

1 REPLY 1
David_Burnham
Super User (Alumni)

Re: Can simplify the script when opening text files with JSL?

You can dramatically simplify the script - you just need to experiment with what is required.  I would always take out the column references and process them after the import, for e3xample:

 

dt = Open("$DOWNLOADS/Big Class.txt");
column(dt,"age") << set modeling type("nominal");
-Dave