Script: rimuove il prefisso della stringa e genera la colonna modificata nel file ExcelCiao a tutti. Ho seguito il consiglio di https://community.jmp.com/t5/Discussions/String-parsing-formula/td-p/51077 e alcuni altri riferimenti per scrivere dati su file, per lo più applicabili a file di testo in blocchi, ma ho trovato il found
Save Excel File()
funzione nell'indice di scripting. Non so cosa significa/fa l'ultimo parametro? Non è spiegato. Vale a dire,
Separate Rows for Each Cell Statistic( 1 )
È importante? Non scrive nulla su nessun file nella posizione che ho specificato se questo parametro è presente o meno.
Ecco una bozza del mio script:
dt = Current Data Table();
c = Words(:ID, "_");
Write(c);
s = c[2] || "_" || c[3] || "_" || c[4] || "_" || c[5];
Write(s);
s << Save Excel File(
"$DOCUMENTS\temp.xlsx",
Separate Rows for Each Cell Statistic( 1 )
);
Quindi sto cercando di rimuovere il prefisso e mantenere i restanti quattro "blocchi di parole" più i loro caratteri di sottolineatura, che sto aggiungendo manualmente tramite concatenazione di stringhe. Vedere https://community.jmp.com/t5/Discussions/string-and-variable-concatenation/td-p/56308 per la concatenazione di stringhe "||" riferimento.
Ad ogni modo, nessun file viene visualizzato in $DOCUMENTS\temp.xlsx.
Anche il, um, come si chiama, terminale, finestra, registro, mi sta dando l'errore
Subscript Range in access or evaluation of 'c[2]' , c[/*###*/2]
e non so perché. Nessuna stringa o colonna viene emessa come risultato delle istruzioni Write() che ho incluso.
Quindi praticamente nulla funziona come dovrebbe. Piazza uno, suppongo!
Fatemi sapere quali consigli riuscite a escogitare.
Saluti,
Mike
Tabella datiScriptingRe: Script: rimuovere il prefisso della stringa e generare la colonna modificata nel file ExcelCiao,
Quando ho a che fare con le stringhe, tendo a preferire lavorare con funzioni specifiche per le stringhe (es. Substitute(), Munger(), Right(), Word());
Quindi, nel tuo caso, suggerirei la seguente formula per rimuovere la prima parte della stringa IDS inclusa la prima istanza del carattere "_":
Substitute( :IDS, Word( 1, :IDS, "_" ) || "_", "" )
Migliore,
TS
Re: Script: rimuovere il prefisso della stringa e generare la colonna modificata nel file ExcelPenso che il file Save Excel sia un caso speciale per la piattaforma di analisi delle risposte categoriali Opzioni aggiuntive della piattaforma categoriale . Per salvare un datatable come file excel puoi semplicemente usare << Salva (percorso).
Attualmente stai provando a salvare solo una stringa in un file excel, stringa creata dalla prima riga di datatable. A seconda di come e cosa vuoi salvare, hai diverse opzioni, di seguito ce n'è una in cui i valori della colonna :ID vengono sostituiti con nuovi valori con i caratteri prima della rimozione di _:
Names Default To Here(1);
dt = New Table("Untitled 2",
Add Rows(3),
Compress File When Saved(1),
New Column("ID", Character, "Nominal", Set Values({"1_2_3_4_5_6", "2_3_4_5_6_7", "3_4_5_6_7_8"}))
);
Wait(1);
dt:ID << Set Each Value(
Substr(:ID, Contains(:ID, "_")+1)
);
dt << Save("$DOCUMENTS\test.xlsx");Potresti anche creare una nuova colonna con i nuovi valori che è molto probabilmente un approccio migliore.
Re: Script: rimuovere il prefisso della stringa e generare la colonna modificata nel file ExcelGrazie per la risposta, @Thierry_S ! Attualmente sto provando il tuo scriptlet e altre cose.
Può sembrare una cosa semplicissima per la maggior parte, ma in realtà non so quale sia il modo migliore per visualizzare l'output a scopo di debug quando è coinvolta più di una variabile a valore singolo, ad esempio come estrarre una singola colonna in un nuova tabella dati (usando solo JSL), o stampa la colonna nel log, o qualcosa del genere.
Non ricordo, forse l'ho già fatto prima e sto solo tracciando uno spazio vuoto, ma mi sento un po' sciocco a chiedere.
Grazie ancora!
Mike
Re: Script: rimuovere il prefisso della stringa e generare la colonna modificata nel file ExcelInoltre, in generale, se hai una funzione che accetta un parametro o una variabile, il passaggio di una colonna eseguirà la funzione in base all'elemento della colonna?
Mike
Re: Script: rimuovere il prefisso della stringa e generare la colonna modificata nel file Excel
Inoltre, in generale, se hai una funzione che accetta un parametro o una variabile, il passaggio di una colonna eseguirà la funzione in base all'elemento della colonna?
No. Di solito, se hai bisogno di qualcosa valutato per ogni riga di una tabella dati, vorrai creare una colonna formula nella tabella dati o utilizzare il Per ogni riga() iteratore.
JMP 16 ha introdotto il Per ciascuno() funzione per iterare su strutture di dati JSL: liste, array associativi o matrici.