<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Ho uno script che aggiunge alcune colonne nella tabella dati e crea alcuni grafici. La prima volta che eseguo lo script, voglio creare le nuove colonne, ma voglio essere in grado di eseguire nuovamente lo script su una tabella dati che contiene già le colonne aggiunte e crea solo i grafici. Sto immaginando una dichiarazione "IF" che controlla se una certa colonna è presente o conta il numero di colonne nella tabella. Qualcuno può mostrarmi come fare una di quelle cose e / o un modo diverso di scrivere quello che sto cercando?
Grazie.
Questo è (per fortuna) abbastanza facile in JMP. È possibile avere tutti i nomi delle colonne inviati a un elenco.
Lo script sotto prende i nomi delle colonne in una tabella. Quindi controlla se un elenco di nomi di colonne fornito dall'utente è presente nella tabella - se il nome della colonna è presente, viene scritto un messaggio nella finestra del registro. Non ci vuole troppa immaginazione per vedere che se il nuovo nome della colonna non è presente nella tabella, la condizione IF () nel ciclo For viene modificata in modo che venga creata la nuova colonna.
Nomi predefiniti per Qui (1);
pulisci il registro();
bigClass = try (Apri ("$ SAMPLE_DATA / Big Class.JMP"));
dt = current data table (); // nome della tabella nella finestra più in alto;
tblcols = dt << ottieni i nomi delle colonne (stringa);
mynewcols = {"height", "weight", "bmi"}; // in minuscolo o non corrisponderà
ordina la lista in (mynewcols);
dt << inizio l'aggiornamento dei dati;
scrivi ("\! NStart of Script. \! N");
Per (i = 1, i <= n elementi (tblcols), i ++,
mycol = trim (minuscolo (tblcols )); // qui è la forza in lettere minuscole
myloc = contains (mynewcols, mycol);
se (myloc! = 0,
scrivi ("Column", mycol, "già presente nella tabella. \! N");
rimuovere da (mynewcols, myloc, 1);
Continua()
);
); // fine del ciclo
dt << aggiornamento dati di fine;
provare (vicino (dt));
scrivi ("Fine dello script. \! N");
// guarda nella finestra di log per l'output;