utilizzo di "per ogni riga" con il nome della colonna da un elenco<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Ciao a tutti
Sto lavorando ad un modo per pulire una tabella generata dall'utente e sto riscontrando un problema: il codice viene compilato correttamente, ma non funziona
Ho una tabella con colonne sconosciute (leggi: multiple, variabili, scritte a mano dall'utente) sia in numeri che in nomi.
Vorrei eseguire una semplice standardizzazione, diciamo eliminare i valori da spazi indesiderati ed errori maiuscoli.
quindi genero un elenco con i nomi delle colonne, creo un ciclo e inserisco un per ogni riga all'interno.
Si compila, ma non funziona. qualche suggerimento? il codice è qui
pagina_utente = aperta ("\utente\pagina.csv", etichette(1));
full_list = user_page <
for (i=1,i
sclmn = ":"||elenco_completo ;
per ogni riga (sclmn = trim (sclmn));
per ogni riga (sclmn = minuscolo (sclmn));
);
Ho provato diverse varianti, utilizzando un riferimento di colonna anziché una stringa o utilizzando Eval(), ma la compilazione non è riuscita. Questo layout è l'unico in fase di compilazione, ma continua a non funzionare. Qualcuno può aiutarmi a capire il motivo?
Ri: uso di "per ogni riga" con il nome della colonna da un elencoSecondo la Guida allo scripting JMP: "Utilizzare sempre un pedice su un riferimento di colonna per accedere ai valori nelle celle delle colonne". Questa sembra essere la pratica migliore anche se ci sono eccezioni in cui funziona senza parentesi quadre, come fai notare.
Ri: uso di "per ogni riga" con il nome della colonna da un elencograzie, il secondo approccio ha funzionato. (Lo preferisco perché utilizzo lo stesso elenco per qualcos'altro)
Ho provato la colonna() molto prima di postare, ma non ha funzionato senza la []
Ho anche esaminato il debugger ed è stato tracciato correttamente come riferimento di colonna anziché come stringa, e ancora non capisco perché sia necessario il []. se usi una versione cablata, diciamo
per ogni riga (:update_01 = trim (:update_01));
funziona senza [], e mi sembra che non ci siano riferimenti a riguardo nella guida o nei libri...
comunque adesso funziona. Grazie!
Ri: uso di "per ogni riga" con il nome della colonna da un elencoIl trucco sta nel fare in modo che JMP riconosca sclmn come una colonna. Nello script corrente sclmn è solo una stringa. Inoltre, ForEachRow() spesso richiede un indice vuoto [ ] dopo le variabili di colonna.
Ecco due modi per farlo:
Dall'elenco dei nomi delle colonne:
lista completa = pagina_utente << Ottieni nomi di colonne () ;
Per ( io = 1 , io <= N articoli ( lista completa ) , io ++,
sclmn = lista completa [ io ] ;
Per ogni riga ( sclmn [] = Ordinare ( sclmn [] ) ) ;
Per ogni riga ( sclmn [] = Minuscolo ( sclmn [] ) ) ;
) ;
O dall'elenco dei nomi di colonna come stringhe:
lista completa = pagina_utente << Ottieni nomi di colonne ( corda ) ;
Per ( io = 1 , io <= N articoli ( lista completa ) , io ++,
sclmn = Colonna ( lista completa [ io ] ) ;
Per ogni riga ( sclmn [] = Ordinare ( sclmn [] ) ) ;
Per ogni riga ( sclmn [] = Minuscolo ( sclmn [] ) ) ;
) ;