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
RobDoubleU
Level I

Convert Column to numeric continuous Date - using Format Pattern - Bug?

Hi,

I have the following input data table, attached input_table.jmp, which is treated by my script, see below or attached after_import_analysis_script.jsl. I want to convert col 1 (character, nominal, input format "<DD>/<MM>/<YY> <hh>:<mm>:<ss>") to Date (numeric, continuous, output format "<DD>.<MM>.<YY> <hh>:<mm>:<ss>"). However if I use my script then the conversion is wrong in the rows from 2656 to 2657,RobDoubleU_0-1746443922033.png. It converts it instead to "<MM>.<DD>.<YY> <hh>:<mm>:<ss>" from row 2657 on. Therefore the duration between row 2656 to 2657 is a month instead of 10 seconds. Please find the buggy data table attached as bugged.jmp

Any idea what's wrong here?

I am using Windows 10, JMP 18 as well as JMP 18 Pro.

 

Thanks!

 

script:

 


dt = Current Data Table();

// Column configuration
dt << Begin Data Update;
    // Rename and configure columns using column numbers
    Column(dt, 1) << Set Name("Date")
        << Data Type(Numeric)
        << Modeling Type("Continuous")
        << Format("Format Pattern", "<DD>.<MM>.<YY> <hh>:<mm>:<ss>", 17, 0 )
        << Input Format( "Format Pattern", "<DD>/<MM>/<YY> <hh>:<mm>:<ss>", 0  );
    
    Column(dt, 2) << Set Name("minutes")
        << Formula((:Date-:Date[1]) / 60)
        << Format("Best", 12);
    
    Column(dt, 3) << Set Name("Temperature 1 [°C]");
    Column(dt, 4) << Set Name("Temperature 2 [°C]");
    Column(dt, 7) << Set Name("Target Temperature 1 [°C]");
    Column(dt, 8) << Set Name("Target Temperature 2 [°C]");
    
    // Remove unused columns
    dt << Delete Columns({"Col 5", "Col 6"});
dt << End Data Update;

// Set display properties
dt << Set Display Width("Date", 180);
dt << Set Display Width("minutes", 50);
dt << Set Display Width("Temperature 1 [°C]", 50);
dt << Set Display Width("Temperature 2 [°C]", 50);

Graph Builder(
	Size( 1239, 816 ),
	Variables( X( :minutes ), Y( :"Temperature 1 [°C]"n ) ),
	Elements(
		Points( X, Y, Legend( 7 ) ),
		Smoother(
			X,
			Y,
			Legend( 9 ),
			Method( "Local Kernel" ),
			Lambda( 0.000001 ),
			Local Width( 0.1284 )
		)
	)
);

 

 

1 ACCEPTED SOLUTION

Accepted Solutions
jthi
Super User

Re: Convert Column to numeric continuous Date - using Format Pattern - Bug?

I think the issue might happen because you are chaining the formatting messages. Change to Numeric will happen before Input format which will happen before format -> JMP will decide the format to use when column is changed to Numeric. You could either re-order them OR send them at the same time, especially the ones related to the data type.

Instead of

    Column(dt, 1) << Set Name("Date")
        << Data Type(Numeric)
        << Modeling Type("Continuous")
        << Input Format( "Format Pattern", "<DD>/<MM>/<YY> <hh>:<mm>:<ss>", 0  )
        << Format("Format Pattern", "<DD>.<MM>.<YY> <hh>:<mm>:<ss>", 17, 0 );

use something like

Column(dt, 1) << Set Data Type(
	Numeric,
	Input Format("Format Pattern", "<DD>/<MM>/<YY> <hh>:<mm>:<ss>", 0),
	Format("Format Pattern", "<DD>.<MM>.<YY> <hh>:<mm>:<ss>", 17, 0)
) << Set Modeling Type("Continuous") << Set Name("Date");
-Jarmo

View solution in original post

2 REPLIES 2
jthi
Super User

Re: Convert Column to numeric continuous Date - using Format Pattern - Bug?

I think the issue might happen because you are chaining the formatting messages. Change to Numeric will happen before Input format which will happen before format -> JMP will decide the format to use when column is changed to Numeric. You could either re-order them OR send them at the same time, especially the ones related to the data type.

Instead of

    Column(dt, 1) << Set Name("Date")
        << Data Type(Numeric)
        << Modeling Type("Continuous")
        << Input Format( "Format Pattern", "<DD>/<MM>/<YY> <hh>:<mm>:<ss>", 0  )
        << Format("Format Pattern", "<DD>.<MM>.<YY> <hh>:<mm>:<ss>", 17, 0 );

use something like

Column(dt, 1) << Set Data Type(
	Numeric,
	Input Format("Format Pattern", "<DD>/<MM>/<YY> <hh>:<mm>:<ss>", 0),
	Format("Format Pattern", "<DD>.<MM>.<YY> <hh>:<mm>:<ss>", 17, 0)
) << Set Modeling Type("Continuous") << Set Name("Date");
-Jarmo
RobDoubleU
Level I

Re: Convert Column to numeric continuous Date - using Format Pattern - Bug?

Thanks for rapid reply!
I understand the issue and your suggested solutions work.

Thanks!

Recommended Articles