Script: rimuove il prefisso della stringa e genera la colonna modificata nel file ExcelCiao a tutti. Ho seguito il consiglio di Formula di analisi delle stringhe e alcuni altri riferimenti per la scrittura di dati su file, per lo più applicabili a chunk file di testo ma ho trovato il file
Save Excel File()
funzione nell'indice di scripting. Non so cosa significhi/significa 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 della mia sceneggiatura:
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 concatenazione di stringhe e variabili 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 suggerimenti potete pensare a tutti voi.
Saluti,
Mike
Tabella datiScriptingRe: Script: Rimuovi il prefisso della stringa e visualizza la colonna modificata nel file ExcelAggiungi il puntatore della tabella dati alla funzione colonna, assicurati che sia la tabella con la colonna.
Colonna(dt, :id)
sembra che potrebbero esserci più tabelle aperte e JMP sta tentando di utilizzare la tabella corrente, che non è quella desiderata.
Quando crei il sottoinsieme, puoi ottenere il puntatore della tabella per la nuova tabella:
dtSottoinsieme = dt<Re: Script: Rimuovi il prefisso della stringa e visualizza la colonna modificata nel file Excel
Questo è un ottimo quadro; il problema che ho identificato ora è abbastanza semplice:
La tabella con cui sto lavorando è un sottoinsieme di righe della tabella completa. E quando vado Column(:ID), non trova la colonna, ad es
could not find column{3} in access or evaluation of 'Column' , Column/*###*/(dt:ID)Il che sembra davvero semplice ma non so perché. Ho pensato che sarebbe stato perché sto usando un sottoinsieme delle righe, cosa che devo fare ma posso scoprire se è così provando lo script sulla tabella di base. Un momento...
No, sembra essere un problema anche sulla tabella dati completa.
Qualche consiglio per "trovare" la mia rubrica?
Michael
Re: Script: Rimuovi il prefisso della stringa e visualizza la colonna modificata nel file Excel
Inoltre, in generale, se si dispone di una funzione che accetta un parametro o una variabile, il passaggio in una colonna eseguirà la funzione in base all'elemento alla colonna?
No. Di solito se hai bisogno di qualcosa valutato per ogni riga di una tabella di dati, vorrai creare una colonna formula nella tabella di dati o utilizzare il Per ogni riga() iteratore.
JMP 16 ha introdotto il Per ciascuno() funzione per iterare su strutture dati JSL: liste, array associativi o matrici.
Re: Script: Rimuovi il prefisso della stringa e visualizza la colonna modificata nel file ExcelInoltre, in generale, se si dispone di una funzione che accetta un parametro o una variabile, il passaggio in una colonna eseguirà la funzione in base all'elemento alla colonna?
Mike
Re: Script: Rimuovi il prefisso della stringa e visualizza la colonna modificata nel file ExcelGrazie per la risposta, @Thierry_S ! Attualmente sto provando il tuo scriptlet e altre cose.
Questo può sembrare una cosa super semplice 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 semplice variabile a valore singolo, ovvero come estrarre una singola colonna in un nuova tabella di dati (usando solo JSL), o stampa la colonna nel registro, o qualcosa del genere.
Non ricordo, forse l'ho già fatto prima e sto solo disegnando uno spazio vuoto, ma mi sento un po' sciocco per avermelo chiesto.
Grazie ancora!
Mike
Re: Script: Rimuovi il prefisso della stringa e visualizza la colonna modificata nel file ExcelPenso che il file Save Excel sia un caso speciale per la piattaforma di analisi della risposta categorica Ulteriori opzioni di piattaforma categorica . Per salvare un datatable come file excel puoi semplicemente usare << Save(path).
Attualmente stai tentando di 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 c'è quella in cui i valori della colonna :ID vengono sostituiti con nuovi valori con i caratteri prima del primo _ rimosso:
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: Rimuovi il prefisso della stringa e visualizza 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,
ST