Différence de colonne - syntaxe JSLSalut tout le monde,
Comment accéder au contenu d'une colonne par la référence de colonne ? Étant donné que mes noms de colonne ne cessent de changer à chaque boucle du script, je ne peux pas simplement utiliser le nom de la colonne pour soustraire.
dt est ma table de données et comporte 30 colonnes. Je veux créer une nouvelle colonne avec dt[28]- dt[30].
Quelqu'un peut-il m'aider avec la syntaxe?
J'apprécie vraiment cela. Merci.
Re : Différence de colonne - syntaxe JSLCet exemple montre comment les variables peuvent être utilisées pour définir des colonnes dynamiquement lorsque 1) vous utilisez la notation matricielle pour les tableaux dans JMP 13 ou 2) définissez une formule.
dt = New Table("Table Subscripting",
New Column("a", Set Values([1 2 3 4 5])),
New Column("b", Set Values([44 22 77 55 99])),
New Column("c", Set Values([59, 58, 57, 56, 55]))
);
startCol = 1;
endCol = N Col(dt);
// New column with the diff between endCol and startCol can be filled
// 1) with static values using matrix notation (JMP 13),
dt << New Column("Delta");
dt[0, endCol + 1] = dt[0, endCol] - dt[0, startCol];
// 2) or by a Column Formula
// (expression must partly be pre-evaluated if variables are used)
F = Eval Expr(Expr(Column(endCol))[] - Expr(Column(startCol))[]);
dt << New Column("Delta2", Formula(Name Expr(F)));Re : Différence de colonne - syntaxe JSLSalut Mark,
Apparemment, je ne peux pas utiliser cette syntaxe de
dt<< Nouvelle colonne( "Delta",
numérique,
Formule( Colonne(dt,startcol)- Colonne(dt,endcol) )
);
startcol = 28 (qui est dérivé après une colonne particulière)
et endCol = ncols( dt );
Étant donné que le nombre de colonnes de mes tableaux de données ne cesse de changer après chaque boucle, je ne peux pas utiliser de nombre. Est-ce qu'il y a un autre moyen?
Re : Différence de colonne - syntaxe JSLEst-ce que 4 implique automatiquement que c'est la fin de la table ? Étant donné que les colonnes de la table de données ne cessent de changer, puis-je utiliser
dt[1::nrow(dt), endcol+1] = dt[1::nrow(dt), startcol] - dt[1::nrow(dt), endcol] ;
où endCol = ncols( kdt ); et startcol = 28 (ceci est dérivé après une colonne particulière)
J'essaie de rendre tout dynamique.
Je ne pense pas que cela fonctionne. Que pensez-vous de cette Mélanie ?Re : Différence de colonne - syntaxe JSLDe plus, si vous exécutez JMP 13, vous pouvez inscrire un indice dans une table de données à l'aide de dt[ligne, colonne] et vous pouvez utiliser des plages (1 :: 4).
Voici un court exemple qui ajoute une nouvelle colonne et définit ses valeurs sur la colonne 3 - colonne 1 :
dt = New Table( "Table Subscripting",
New Column( "a", Set Values( [1 2 3 4 5] ) ),
New Column( "b", Set Values( [44 22 77 55 99] ) ),
New Column( "c", Set Values( [59, 58, 57, 56, 55] ) )
);
dt << New Column( "new column" );
dt[1::nrow(dt), 4] = dt[1::nrow(dt), 3] - dt[1::nrow(dt), 1];
Re : Différence de colonne - syntaxe JSLIl existe plusieurs façons de faire référence à une colonne :
- :nom
- Nom de colonne" )
- Colonne( référence de la table de données, "nom" )
- Colonne (index)
- Colonne (référence de la table de données, index)
Je soupçonne que les deux dernières formes basées sur la fonction Column() seront utiles dans votre cas.