Scripting For bucle para multiplicar valores a lo largo de la filaHola,
Soy bastante nuevo en la creación de scripts en JMP y he buscado soluciones en muchos foros de jmp, pero no he tenido éxito en modificar las soluciones para mi problema particular.
Tengo un script que produce una tabla de un número desconocido de columnas y quiero multiplicar cada valor en la fila (solo hay una fila en la tabla generada) en las columnas producidas (columna 1 * columna 2 * columna 3 * etc.). Simplifiqué la tabla para el ejemplo, la tabla real podría tener muchas más columnas.
Mi ciclo multiplica cada fila por la siguiente, pero no me da la respuesta final de todas las filas multiplicadas entre sí. También solo quiero el producto final de todos los valores multiplicados y no necesito el producto de cada valor incremental. Cualquier ayuda es muy apreciada.
New Table( "tsp",
Add Rows( 1 ),
New Column( "Row 1",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Selected,
Set Values( [0.975] )
),
New Column( "Row 2",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Selected,
Set Values( [0.985] )
),
New Column( "Row 3",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Selected,
Set Values( [0.983] )
),
New Column( "Row 4",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Selected,
Set Values( [0.839] )
),
);
Ncol = N col(tsp);
For( i = 1, i <= Ncol, i++,
For( j = i + 1, j <= Ncol, j++,
RTP = Eval( Column( i ) << Get Name ) || " * " || Eval( Column( i+=1 ) << Get Name );
New Column( RTP, Numeric , seteachvalue( Column( i )[] * Column( i+=1 )[]) );
)
);
ScriptingRe: Scripting For loop para multiplicar valores en la filaEstás trabajando demasiado.A continuación se muestra lo que creo que quieres
names default to here( 1 );
dt = New Table( "tsp",
Add Rows( 1 ),
New Column( "Row 1",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Selected,
Set Values( [0.975] )
),
New Column( "Row 2",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Selected,
Set Values( [0.985] )
),
New Column( "Row 3",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Selected,
Set Values( [0.983] )
),
New Column( "Row 4",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Selected,
Set Values( [0.839] )
),
);
Ncol = N Col( dt ); // or NCol = N Col( data table("tsp"));
value = 1;
For( i = 1, i <= Ncol, i++,
value = Column( dt, i )[1] * value
);
Show( value );Re: Scripting For loop para multiplicar valores en la fila¡Señor, es absolutamente maravilloso! muchas gracias funciona perfecto! Definitivamente estaba complicando las cosas jaja. ¡Eres tan útil!
Re: Scripting For loop para multiplicar valores en la filaTodo lo que necesita después de New Table () es:
Product( i = 1, N Col( dt ), Column( dt, i )[1] );
Re: Scripting For loop para multiplicar valores en la filaIntenté poner esto en For Each Row para situaciones en las que tendría varias filas para iterar con esta fórmula, pero no parece estar funcionando y no estoy seguro de cuál es mi error ... obtengo el valor correcto en "RTP" para la primera fila "A" (86,9%) y luego todas las demás filas muestran el mismo valor (75,5%) cuando todas deberían ser diferentes ...
New Table( "tsp",
Add Rows( 5 ),
New Column( "Site",
Character,
"Nominal",
Set Selected,
Set Values( {"A", "B", "C", "D", "E"} )
),
New Column( "Row 1",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Selected,
Set Values(
[0.974, 0.872, 0.927,
0.974, 0.9033]
)
),
New Column( "Row 2",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Selected,
Set Values(
[0.968, 0.902, 0.931, .,
0.962]
)
),
New Column( "Row 3",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Selected,
Set Values(
[0.944, 0.968, 0.987, ., .]
)
),
New Column( "Row 4",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Selected,
Set Values( [0.9847, 0.9471, ., ., .] )
),
New Column( "Row 5",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Selected,
Set Values( [0.990, 0.994, ., ., .] )
)
);tsp << New Column("RTP", numeric, continuous, Format(Percent, 1));
for each row(:RTP= Product( i = 2, N Col( tsp), Column( tsp, i )[1] ));