Scripting For loop per moltiplicare i valori su una rigaCiao,
Sono abbastanza nuovo nello scripting in JMP e ho cercato soluzioni attraverso molti forum jmp, ma non sono riuscito a modificare le soluzioni per il mio problema particolare.
Ho uno script che produce una tabella di un numero sconosciuto di colonne e voglio moltiplicare ogni valore nella riga (c'è solo una riga nella tabella generata) attraverso le colonne prodotte (colonna 1 * colonna 2 * colonna 3 * ecc.). Ho semplificato la tabella per l'esempio, la tabella effettiva potrebbe avere molte più colonne.
Il mio ciclo moltiplica ogni riga per quella successiva ma non mi dà la risposta finale di tutte le righe moltiplicate l'una per l'altra. Voglio anche solo che il prodotto finale di tutti i valori sia moltiplicato insieme e non ho bisogno del prodotto di ogni valore incrementale. Qualsiasi aiuto è molto apprezzato.
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 )[]) );
)
);
ScriptingRi: Scripting For loop per moltiplicare i valori su una rigaStai lavorando troppo duramente.Di seguito è riportato quello che credo tu voglia
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 );Ri: Scripting For loop per moltiplicare i valori su una rigaSignore, sono assolutamente meravigliosi! grazie mille funziona perfettamente! Stavo decisamente complicando le cose ahah. sei così utile!
Ri: Scripting For loop per moltiplicare i valori su una rigaTutto ciò di cui hai bisogno dopo New Table () è:
Product( i = 1, N Col( dt ), Column( dt, i )[1] );
Ri: Scripting For loop per moltiplicare i valori su una rigaHo provato a metterlo in un Per ogni riga per situazioni in cui avrei più righe da scorrere con questa formula ma non sembra funzionare e non sono sicuro di quale sia il mio errore .. Ottengo il valore corretto in "RTP" per la prima riga "A" (86,9%) e poi tutte le restanti righe mostrano lo stesso valore (75,5%) quando dovrebbero essere tutte diverse ...
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] ));