Nombre conditionnel dans les colonnesJ'ai un tableau avec plusieurs colonnes (> 100). J'essaie de créer une colonne qui compte le nombre de colonnes dans une ligne supérieures à 1. Comment pourrais-je écrire une formule pour faire ça ? Vous trouverez ci-dessous une petite image d'un exemple de tableau.
Il serait préférable qu'il ne s'agisse que d'une formule que je pourrais déposer dans un tableau et non d'un script JSL autonome.
Automatisation et scriptsRe : Comptage conditionnel dans les colonnesCette formule veut que votre colonne « calcul » soit la dernière du tableau de données et elle doit être créée avant d'ajouter la formule. De plus, cela ne sera pas mis à jour comme les formules normales, vous devrez donc ouvrir la formule et appuyer sur Appliquer :
Sum(Current Data Table()[Row(), Index(1, N Cols(Current Data Table()) - 1)] > 1)
Re : Comptage conditionnel dans les colonnesVoici une façon :
NamesDefaultToHere(1);
// Build a table
nr = 20; // Number of rows
nc = 10; // Number of columns
dt = AsTable(J(nr, nc, RandomNormal(1, 1)));
dt << setName("Above and Below One");
// Find out what columns are in the table
cols = dt << getColumnNames("String");
// Build an expression to be used as the formula:
// Sum the results of an 'if' clause for each column that exists
form = Expr(Add());
for(c=1, c<=NItems(cols), c++,
ifClause = Expr(If(columnTBD > 1, 1, 0));
SubstituteInto(ifClause, Expr(columnTBD), Parse(":"||cols[c]));
InsertInto(form, NameExpr(ifClause));
);
// Inspect the resulting formula
Print(form);
// Add the formula column
fc = dt << NewColumn("Count Above One", Numeric, Ordinal, Formula(NameExpr(form)));Re: Comptage conditionnel sur plusieurs colonnesPour faciliter la mise à jour des données, vous pouvez ajouter une des colonnes d'entrée (ici : hauteur ) comme variable factice dans la formule de la colonne. JMP surveillera alors cette colonne. Pour déclencher une mise à jour, il suffit de modifier une valeur dans cette colonne.
De plus, vous pouvez placer la table de données « accès » et la définition de colonne dans une constante .
Open( "$SAMPLE_DATA/Big Class.jmp" );
New Column( "values > 60",
Formula(
As Constant(
dt = Current Data Table();
//cols = Index(4,5);
cols = {"height", "weight"};
);
:height;
Sum( dt[Row(), cols] > 60 );
)
);