Estrai il numero massimo da una colonna e inseriscilo in un ciclo for nello stesso script jslIl mio script JSL ha 3 parti. Nella prima parte creo una colonna numerica (colonna A) con 100 righe riempite con numeri interi casuali compresi tra 50 e 1000.
Nella 2a parte, estraggo il numero massimo nella colonna A e lo memorizzo in una variabile i.
Nella terza parte, utilizzo i per creare un ciclo for che crea un numero di nuove colonne nella stessa tabella. Come posso fare questo?
Sembra di poter memorizzare i dati in i ma il ciclo for non è in esecuzione.
Automazione e scriptingfinestreRi: Estrai il numero massimo da una colonna e inseriscilo in un ciclo for nello stesso script jslEcco un esempio semplicissimo......
Names Default To Here( 1 );
dt =
// Open Data Table: Blood Pressure.jmp
// → Data Table( "Blood Pressure" )
Open( "$SAMPLE_DATA/Blood Pressure.jmp" );
dt << New Column( "A", formula( Random Integer( 50, 1000 ) ) );
i = Col Max( dt:A );
For( k = 1, k <= i, k++,
dt << New Column( "col" || Char( k ) )
);
Ri: Estrai il numero massimo da una colonna e inseriscilo in un ciclo for nello stesso script jslPoiché non ho accesso a JMP14, devo solo indovinare cosa potrebbe essere diverso.
Forse il ciclo non viene eseguito affatto -> aggiungi stampa di debug per max
Names Default To Here(1);
dt = New Table("",
Add Rows(100),
New Column("ColumnA", Numeric, Continuous, Formula(Random Integer(50, 1000)))
);
max = Col Max(Column(dt, "ColumnA"));
Show(max);
For(i = 1, i <= max, i++,
Show(i);
);
altro caso di debug, prova il loop senza la tabella
Names Default To Here(1);
max = 10;
For(i = 1, i <= max, i++,
Show(i);
);
Se JMP14 avesse Debugger (e puoi farlo funzionare perché potrebbe non essere così facile) potresti anche provarlo

Ri: Estrai il numero massimo da una colonna e inseriscilo in un ciclo for nello stesso script jslQuando lo eseguo, vedo solo /*; nel registro.
Ri: Estrai il numero massimo da una colonna e inseriscilo in un ciclo for nello stesso script jslRicevi un messaggio di errore? Le tue colonne vengono create ma hanno valori errati? Hai detto che il ciclo for non viene eseguito ma ora non crea colonne (quelli sono molto probabilmente problemi separati). Se aggiungi Show(i); all'interno del tuo ciclo stampa correttamente questi valori per accedere?
Names Default To Here(1);
dt = New Table("",
Add Rows(100),
New Column("ColumnA", Numeric, Continuous, Formula(Random Integer(50, 1000)))
);
max = Col Max(Column(dt, "ColumnA"));
For(i = 1, i <= max, i++,
Show(i);
);Ri: Estrai il numero massimo da una colonna e inseriscilo in un ciclo for nello stesso script jslQuesto codice ha lo stesso problema del mio codice. Quando eseguo il tuo codice non crea le colonne che avrebbero dovuto essere create dal ciclo for. Sto usando JMP 14 quindi una versione un po' più vecchia.
Ri: Estrai il numero massimo da una colonna e inseriscilo in un ciclo for nello stesso script jslNon hai pubblicato il tuo codice così difficile da dire cosa c'è che non va. Ecco un esempio funzionante
Names Default To Here(1);
dt = New Table("",
Add Rows(100),
New Column("ColumnA", Numeric, Continuous, Formula(Random Integer(50, 1000)))
);
max = Col Max(Column(dt, "ColumnA"));
For(i = 1, i <= max, i++,
dt << New Column(Char(i), Numeric, Continuous, Set Each Value(i));
);Ri: Estrai il numero massimo da una colonna e inseriscilo in un ciclo for nello stesso script jslEcco l'estrazione del valore massimo dalla colonna A.
X = Eval(Col Max(:Nome("Colonna A")));
Quindi quando lo uso come, for (i=1, i<=X ...
Questo ciclo for non viene eseguito. Ho controllato che X stia segnalando il numero giusto.
Ri: Estrai il numero massimo da una colonna e inseriscilo in un ciclo for nello stesso script jslPotresti postare cosa hai provato?