Come posso scansionare il testo in una colonna e inserire un termine chiave in un'altra colonna?Ciao a tutti!
Questo è il mio primo post su questa bacheca, quindi mi scuso se non è formattato correttamente. Sto elaborando un nuovo script per analizzare un set di dati in pila di 12 esperimenti. Devo prendere alcune frasi chiave dalla nostra colonna "ID batch" e organizzarle in altre colonne utilizzando una formula/script (preferibilmente formula). Quindi in questo scenario ho bisogno che la frase "B01" vada nella colonna Bioreactor nella stessa riga dell'ID batch contenente quella frase, "VBTS-935" per fare lo stesso con la colonna Strain e la data per fare lo stesso con la colonna Data. Questo è attualmente il modo in cui sono formattati i nostri dati di testo, ma se qualcuno ha suggerimenti su come riformattarli per un'analisi più semplice, fatemelo sapere!
Grazie per l'aiuto in anticipo.
Automazione e scriptingOrganizzazione dei contenutiRi: Come posso scansionare il testo in una colonna e inserire un termine chiave in un'altra colonna?Ciao @BunnyBoi12 ,
Suggerirei di aggiungere formule nelle ultime 3 colonne. Ecco alcuni esempi su cui puoi indagare.
Bioreattore: word(2, :ID batch, ":")
Strain: word(2, :Batch ID, ", ") // Nota che c'è anche uno spazio tra le virgolette!
Data: parola(3, :ID batch, ", : ")
Nota aggiuntiva sulla colonna della data, puoi racchiudere la funzione word() in una funzione format() e formattare la tua data se lo desideri.
Help > Scripting Index è anche un'ottima risorsa per esplorare le funzioni che potrebbero esserti utili!
Ri: Come posso scansionare il testo in una colonna e inserire un termine chiave in un'altra colonna?Ci sono alcune opzioni su come eseguire questa operazione (word() e words() sono poche funzioni che potresti usare o Regex() se hai familiarità con le espressioni regolari).
Una cosa che suggerirei anche è esplorare Recode (fare clic con il tasto destro sull'intestazione della colonna)

ad esempio ha l'opzione Estrai segmenti (e molti altri)


Dopo aver diviso la colonna, dovresti essere in grado di ottenere lo script dal registro avanzato

E Text To Columns che potrebbe aiutarti a trasformare il grande problema in pochi più piccoli.

Inoltre, quando si pubblicano domande nella community di JMP, in genere è una buona idea fornire una sorta di dati (prototipi o reali se possono essere condivisi) e includere le colonne dei risultati desiderati almeno per poche righe per aiuto durante il test di diverse soluzioni.
Ri: Come posso scansionare il testo in una colonna e inserire un termine chiave in un'altra colonna?Fantastico grazie! Userò sicuramente l'opzione di ricodifica più spesso con quegli usi.
Ri: Come posso scansionare il testo in una colonna e inserire un termine chiave in un'altra colonna?ti dispiacerebbe spiegare cosa significano "2" e "3"? Le tue formule hanno funzionato a meraviglia, ma la spiegazione che JMP fornisce è molto fuori di testa quando si tratta del contesto della formula e voglio assicurarmi di poter insegnare al resto del mio team come usarlo correttamente
Ri: Come posso scansionare il testo in una colonna e inserire un termine chiave in un'altra colonna?Diciamo che abbiamo una stringa:
mystr = "my,name,is,starfruitbob"
word( , , )
Secondo me, è meglio imparare cosa fa ognuno di questi in modo leggermente fuori servizio:
- : potrebbe essere una variabile stringa o una colonna, ad esempio. Questo è l'ingresso. Deve essere un tipo di carattere.
- : "stringi le cose qui!" <-- inserisci qui tutti i delimitatori che desideri. OGNI di essi, individualmente, verranno usati come delimitatore, anche se ci metti uno spazio!
- : a seconda di come stai delimitando il tuo input, sarà separato in diversi "pezzi". Il numero è quale "pezzo" vuoi restituire.
Diamo un'occhiata a un esempio:
mystr = "my,name,is,starfruitbob";
// Note where the commas are in the variable above
print( word( 1, mystr, "," ) ); // Returns: my
print( word( 3, mystr, "," ) ); // Returns: is
// If the delimiter is changed...
print( word( 1, mystr, "s" ) ); // Returns: my,name,i
// This is because it will return the first characters BEFORE the new delimiter "s"
print( word( 2, mystr, "s" ) ); // Returns: ,
// There's only a single comma between the two "s" delimiters, and is the second "chunk" of the input
Questo aiuta @BunnyBoi12
Ri: Come posso scansionare il testo in una colonna e inserire un termine chiave in un'altra colonna?Credo di si. Quindi se l'hai fatto
print( parola(3, mystr, "s" ) ); restituirebbe "tarfruitbob"?
Ri: Come posso scansionare il testo in una colonna e inserire un termine chiave in un'altra colonna?Esattamente. 
Ri: Come posso scansionare il testo in una colonna e inserire un termine chiave in un'altra colonna?Sei un uomo fantastico, spero che tu abbia una giornata fantastica