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-747977%22%20slang%3D%22de-DE%22%20mode%3D%22CREATE%22%3E%C2%BFC%C3%B3mo%20creo%20una%20nueva%20tabla%20de%20datos%20que%20combina%20filas%20duplicadas%3F%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-747977%22%20slang%3D%22de-DE%22%20mode%3D%22CREATE%22%3E%3CP%3ETengo%20una%20lista%20indexada%20de%20corridas%20de%20producci%C3%B3n%20de%20diferentes%20productos%20(AH)%20y%20sus%20tiempos%20de%20inicio%20y%20finalizaci%C3%B3n.%20A%20veces%20hay%20dos%20l%C3%ADneas%20seguidas%20con%20el%20mismo%20producto%20(filas%201%20y%202%20y%207%20y%208)%3C%2Fimg%3E%20y%20me%20gustar%C3%ADa%20que%20se%20combinaran%20en%20una%20fila%20con%20la%20hora%20de%20inicio%20de%20la%20primera%20fila%20y%20la%20hora%20de%20finalizaci%C3%B3n%20de%20la%20segunda%20fila.%20%C2%BFC%C3%B3mo%20usar%C3%ADa%20JSL%20para%20hacer%20esto%3F%3C%2FP%3E%3CP%3E%20%3C%2FP%3E%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22gmc5149_0-1713457204801.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22gmc5149_0-1713457204801.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22gmc5149_0-1713457204801.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22gmc5149_0-1713457204801.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22gmc5149_0-1713457204801.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22gmc5149_0-1713457204801.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.jmp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F63471iCFEB2D5EEEDAE55C%2Fimage-size%2Fmedium%3Fv%3Dv2%26amp%3Bpx%3D400%22%20role%3D%22button%22%20title%3D%22gmc5149_0-1713457204801.png%22%20alt%3D%22gmc5149_0-1713457204801.png%22%20%2F%3E%3C%2Fspan%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%20%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-LABS%20id%3D%22lingo-labs-747977%22%20slang%3D%22de-DE%22%20mode%3D%22CREATE%22%3E%3CLINGO-LABEL%3EAutomatizaci%C3%B3n%20y%20secuencias%20de%20comandos%3C%2FLINGO-LABEL%3E%3CLINGO-LABEL%3ECombinaci%C3%B3n%20y%20limpieza%20de%20datos%3C%2FLINGO-LABEL%3E%3C%2FLINGO-LABS%3E%3CLINGO-SUB%20id%3D%22lingo-sub-747990%22%20slang%3D%22de-DE%22%20mode%3D%22CREATE%22%3ERe%3A%20%C2%BFC%C3%B3mo%20creo%20una%20nueva%20tabla%20de%20datos%20combinando%20filas%20duplicadas%3F%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-747990%22%20slang%3D%22de-DE%22%20mode%3D%22CREATE%22%3E%3CP%3ECreo%20que%20esto%20deber%C3%ADa%20hacer%20lo%20que%20quieres.%3C%2FP%3E%0A%3CP%3E%20%3C%2FP%3E%0A%3CP%3EAgregue%20una%20nueva%20columna%20(num%C3%A9rica)%20a%20su%20tabla%20para%20calcular%20%22grupos%22%20con%20f%C3%B3rmula%20como%3C%2FP%3E%0A%3CPRE%3E%3CCODE%20class%3D%22%20language-jsl%22%3EIf(Row()%20%3D%3D%201%2C%0A%09counter%20%3D%200%3B%0A)%3B%0AIf(%3AProduct%20!%3D%20Lag(%3AProduct)%2C%0A%09counter%2B%2B%3B%0A)%3B%0Acounter%3B%0A%3C%2FCODE%3E%3C%2FPRE%3E%0A%3CP%3EThen%20you%20can%20use%20Summary%20table%20to%20perform%20the%20min%2Fmax%20part%3CCODE%20class%3D%22%20language-jsl%22%3E%3C%2FCODE%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22jthi_1-1713458056939.png%22%20style%3D%22width%3A%20999px%3B%22%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22jthi_1-1713458056939.png%22%20style%3D%22width%3A%20999px%3B%22%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22jthi_1-1713458056939.png%22%20style%3D%22width%3A%20999px%3B%22%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22jthi_1-1713458056939.png%22%20style%3D%22width%3A%20999px%3B%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22jthi_1-1713458056939.png%22%20style%3D%22width%3A%20999px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.jmp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F63473i931158173607E606%2Fimage-size%2Flarge%3Fv%3Dv2%26amp%3Bpx%3D999%22%20role%3D%22button%22%20title%3D%22jthi_1-1713458056939.png%22%20alt%3D%22jthi_1-1713458056939.png%22%20%2F%3E%3C%2Fspan%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3EElimine%20y%20reordene%20las%20columnas%20de%20la%20tabla%20de%20resumen%20seg%C3%BAn%20sea%20necesario%3C%2FP%3E%0A%3CP%3E%20%3C%2FP%3E%0A%3CP%3EAqu%C3%AD%20hay%20un%20script%20de%20Registro%20mejorado%20para%20realizar%20esas%20acciones.%3C%2FP%3E%0A%3CP%3E%20%3C%2FP%3E%0A%3CPRE%3E%3CCODE%20class%3D%22%20language-jsl%22%3E%2F%2F%20Open%20Data%20Table%3A%20Run%20Time%20Index.jmp%0A%2F%2F%20%E2%86%92%20Data%20Table(%22Run%20Time%20Index%22)%0AOpen(%22%24DOWNLOADS%2FRun%20Time%20Index.jmp%22)%3B%0A%0A%2F%2F%20New%20column%3A%20R%0AData%20Table(%22Run%20Time%20Index%22)%20%26lt%3B%26lt%3B%20New%20Column(%22R%22%2C%0A%09Numeric%2C%0A%09%22Continuous%22%2C%0A%09Format(%22Best%22%2C%2012)%2C%0A%09Formula(%0A%09%09If(Row()%20%3D%3D%201%2C%20counter%20%3D%200)%3B%0A%09%09If(%3AProduct%20!%3D%20Lag(%3AProduct)%2C%0A%09%09%09counter%0A%09%09%09%2B%2B)%3B%0A%09%09counter%3B%0A%09)%0A)%3B%0A%0A%2F%2F%20Data%20table%20summary%0A%2F%2F%20%E2%86%92%20Data%20Table(%22Run%20Time%20Index%20By%20(R%2C%20Product)%22)%0AData%20Table(%22Run%20Time%20Index%22)%20%26lt%3B%26lt%3B%20Summary(%0A%09Group(%3AR%2C%20%3AProduct)%2C%0A%09Min(%3ARun%20Index)%2C%0A%09Min(%3AStart)%2C%0A%09Max(%3AEnd)%2C%0A%09Freq(%22None%22)%2C%0A%09Weight(%22None%22)%2C%0A%09statistics%20column%20name%20format(%22column%22)%2C%0A%09Link%20to%20original%20data%20table(0)%0A)%3B%0A%0A%2F%2F%20Delete%20columns%0AData%20Table(%22Run%20Time%20Index%20By%20(R%2C%20Product)%22)%20%26lt%3B%26lt%3B%20Delete%20Columns(%3AR%2C%20%3AN%20Rows)%3B%0A%0A%2F%2F%20Move%20selected%20column%3A%20Run%20Index%0AData%20Table(%22Run%20Time%20Index%20By%20(R%2C%20Product)%22)%20%26lt%3B%26lt%3B%20Move%20Selected%20Columns(%7B%3ARun%20Index%7D%2C%20To%20First)%3B%0A%0A%2F%2F%20Change%20column%20modeling%20type%3A%20Run%20Index%0AData%20Table(%22Run%20Time%20Index%20By%20(R%2C%20Product)%22)%3ARun%20Index%20%26lt%3B%26lt%3B%20Set%20Modeling%20Type(%22Ordinal%22)%3B%3C%2FCODE%3E%3C%2FPRE%3E%0A%3CP%3E%20%3C%2FP%3E%0A%3CP%3E%20%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-747996%22%20slang%3D%22de-DE%22%20mode%3D%22UPDATE%22%3ERe%3A%20%C2%BFC%C3%B3mo%20creo%20una%20nueva%20tabla%20de%20datos%20combinando%20filas%20duplicadas%3F%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-747996%22%20slang%3D%22de-DE%22%20mode%3D%22UPDATE%22%3E%3CP%3E%20%3C%2FP%3E%0A%3CP%3E%20%3C%2FP%3E%0A%3CP%3E%20%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-747997%22%20slang%3D%22de-DE%22%20mode%3D%22CREATE%22%3ERe%3A%20%C2%BFC%C3%B3mo%20creo%20una%20nueva%20tabla%20de%20datos%20combinando%20filas%20duplicadas%3F%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-747997%22%20slang%3D%22de-DE%22%20mode%3D%22CREATE%22%3E%3CP%3E%C2%A1gracias!%3C%2FP%3E%3C%2FLINGO-BODY%3E
Choose Language Hide Translation Bar
gmc5149
Level I

How do I create a new data table combining duplicate rows?

I have a indexed list of production runs of different products (A-H) and their start and end times. Sometimes there are two lines in a row with the same product (rows 1 & 2 and 7 & 8) and I would like those to be combined into one row with the start time of the first row and end time of the second row. How would I use JSL to do this?

 

gmc5149_0-1713457204801.png

 

1 ACCEPTED SOLUTION

Accepted Solutions
jthi
Super User

Re: How do I create a new data table combining duplicate rows?

I think this should do what you want.

 

Add new (numeric) column to your table to calculate "groups" with formula like

If(Row() == 1,
	counter = 0;
);
If(:Product != Lag(:Product),
	counter++;
);
counter;

Then you can use Summary table to perform the min/max part

jthi_1-1713458056939.png

Remove and re-order columns from summary table as needed

 

Here is a script from Enhanced Log to perform those actions

 

// Open Data Table: Run Time Index.jmp
// → Data Table("Run Time Index")
Open("$DOWNLOADS/Run Time Index.jmp");

// New column: R
Data Table("Run Time Index") << New Column("R",
	Numeric,
	"Continuous",
	Format("Best", 12),
	Formula(
		If(Row() == 1, counter = 0);
		If(:Product != Lag(:Product),
			counter
			++);
		counter;
	)
);

// Data table summary
// → Data Table("Run Time Index By (R, Product)")
Data Table("Run Time Index") << Summary(
	Group(:R, :Product),
	Min(:Run Index),
	Min(:Start),
	Max(:End),
	Freq("None"),
	Weight("None"),
	statistics column name format("column"),
	Link to original data table(0)
);

// Delete columns
Data Table("Run Time Index By (R, Product)") << Delete Columns(:R, :N Rows);

// Move selected column: Run Index
Data Table("Run Time Index By (R, Product)") << Move Selected Columns({:Run Index}, To First);

// Change column modeling type: Run Index
Data Table("Run Time Index By (R, Product)"):Run Index << Set Modeling Type("Ordinal");

 

 

-Jarmo

View solution in original post

3 REPLIES 3
jthi
Super User

Re: How do I create a new data table combining duplicate rows?

I think this should do what you want.

 

Add new (numeric) column to your table to calculate "groups" with formula like

If(Row() == 1,
	counter = 0;
);
If(:Product != Lag(:Product),
	counter++;
);
counter;

Then you can use Summary table to perform the min/max part

jthi_1-1713458056939.png

Remove and re-order columns from summary table as needed

 

Here is a script from Enhanced Log to perform those actions

 

// Open Data Table: Run Time Index.jmp
// → Data Table("Run Time Index")
Open("$DOWNLOADS/Run Time Index.jmp");

// New column: R
Data Table("Run Time Index") << New Column("R",
	Numeric,
	"Continuous",
	Format("Best", 12),
	Formula(
		If(Row() == 1, counter = 0);
		If(:Product != Lag(:Product),
			counter
			++);
		counter;
	)
);

// Data table summary
// → Data Table("Run Time Index By (R, Product)")
Data Table("Run Time Index") << Summary(
	Group(:R, :Product),
	Min(:Run Index),
	Min(:Start),
	Max(:End),
	Freq("None"),
	Weight("None"),
	statistics column name format("column"),
	Link to original data table(0)
);

// Delete columns
Data Table("Run Time Index By (R, Product)") << Delete Columns(:R, :N Rows);

// Move selected column: Run Index
Data Table("Run Time Index By (R, Product)") << Move Selected Columns({:Run Index}, To First);

// Change column modeling type: Run Index
Data Table("Run Time Index By (R, Product)"):Run Index << Set Modeling Type("Ordinal");

 

 

-Jarmo
gmc5149
Level I

Re: How do I create a new data table combining duplicate rows?

thank you!

txnelson
Super User

Re: How do I create a new data table combining duplicate rows?

 

 

 

Jim

Recommended Articles