Scripting For boucle pour multiplier les valeurs sur la ligneSalut,
Je suis assez nouveau dans le scripting dans JMP et j'ai parcouru de nombreux forums jmp pour trouver des solutions, mais je n'ai pas réussi à modifier les solutions pour mon problème particulier.
J'ai un script qui produit une table de nombre inconnu de colonnes et je veux multiplier chaque valeur dans la ligne (il n'y a qu'une seule ligne dans le tableau généré) à travers les colonnes produites (colonne 1 * colonne 2 * colonne 3 * etc.). J'ai simplifié le tableau pour l'exemple, le tableau réel pourrait avoir beaucoup plus de colonnes.
Ma boucle multiplie chaque ligne par la suivante mais ne me donne pas la réponse finale de toutes les lignes multipliées les unes par les autres. Je veux aussi juste le produit final de toutes les valeurs multipliées ensemble et je n'ai pas besoin du produit de chaque valeur incrémentielle. Toute aide est fortement appréciée.
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 boucle pour multiplier les valeurs sur la ligneVous travaillez trop dur.Ci-dessous ce que je crois que tu veux
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 boucle pour multiplier les valeurs sur la ligneVous monsieur, êtes absolument merveilleux! merci beaucoup cela fonctionne parfaitement! J'étais définitivement en train de compliquer les choses haha. vous êtes si utile!
Re: Scripting For boucle pour multiplier les valeurs sur la ligneTout ce dont vous avez besoin après New Table () est:
Product( i = 1, N Col( dt ), Column( dt, i )[1] );
Re: Scripting For boucle pour multiplier les valeurs sur la ligneJ'ai essayé de mettre cela dans un For Each Row pour les situations où j'aurais plusieurs lignes à parcourir avec cette formule, mais cela ne semble pas fonctionner et je ne suis pas sûr de mon erreur ... j'obtiens la valeur correcte dans "RTP" pour la première ligne "A" (86,9%) puis toutes les autres lignes affichent la même valeur (75,5%) alors qu'elles devraient toutes être différentes ...
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] ));