Estrazione di testo da una colonna di stringheCiao,
Sono un po' alle prime armi con gli script in JMP e sto cercando di scrivere uno script che sia in grado di estrarre numeri specifici da una stringa e creare nuove colonne per ognuno di essi. Ogni numero seguirebbe sempre i caratteri 'DX' o 'DY'. Ad esempio:
D113U_NTCH_CM_MEAS_CD_SEM_{2UM_X6_NTCH_CM_IMAGE}_DX7DY11SDX11SDY15_2024-12-06_18-57-42.jpg
Vorrei estrarre e creare queste colonne:

Naturalmente, vorrei ripetere questo processo su un'intera colonna di dati. Gradirei qualsiasi consiglio. Grazie!
Automazione e scriptingRe: Estrazione di testo da una colonna di stringheConosci in anticipo tutti i possibili pattern (DX, DY, ....)? Si trova sempre nello stesso posto (dopo }_ e prima della data)?
Re: Estrazione di testo da una colonna di stringheSe avessi una colonna piena di quei nomi di file, farei Cols -> Recode, triangolo rosso in alto a sinistra -> "Replace String", quindi inserirei "S?D[XY](\d+)" e sostituirei con "%\1%" con "Use regular expressions" attivato. Quindi puoi dividere la colonna (Cols -> Utilities -> Text to Columns...") e inserire "%", che ti darà 6 nuove colonne, con il prefisso, DX, DY, SDX, SDY e il suffisso, ad esempio:
| Colonna 1 2 | Colonna 1 3 | Colonna 1 4 | Colonna 1 5 | Colonna 1 6 | Colonna 1 7 |
| D113U_NTCH_CM_MEAS_CD_SEM_{2UM_X6_NTCH_CM_IMMAGINE}_ | 7 | 11 | 11 | 15 | _2024-12-06_18-57-42.jpg |
Quindi puoi rinominare le colonne in DX, DY, ecc.
Se i dati reali sono più complessi, anche questo processo potrebbe dover essere un po' più complicato.
Re: Estrazione di testo da una colonna di stringheCarino : )
forse iniziare con
word(8, filename,"_")
in modo che funzioni anche per il lotto DX11A .
Re: Estrazione di testo da una colonna di stringheMi è stato utile, grazie mille per l'aiuto.
Vedi altro...Per estrarre testo da una colonna di stringhe in JMP, puoi usare formule o script. I metodi comuni includono espressioni regolari per la corrispondenza di pattern o funzioni di sottostringa per isolare testo specifico. La funzione **Regex()** è versatile per pattern complessi, mentre le estrazioni più semplici possono utilizzare efficacemente le funzioni **Left(), Right(),** o **Substring()**. Durante un semestre particolarmente impegnativo, mi sono imbattuto in
Italiano: https://canadianwritings.com/ e si è rivelato una salvezza. Avevo bisogno di aiuto con un saggio sulla letteratura moderna e il servizio ha fornito un documento ben documentato e perfettamente strutturato. Lo scrittore ha seguito le mie istruzioni alla lettera e il risultato finale è stato impressionante. Inoltre, hanno consegnato il saggio prima della scadenza, il che mi ha dato il tempo di esaminarlo correttamente prima di inviarlo.
Re: Estrazione di testo da una colonna di stringheEcco un approccio alternativo.
Data la tabella dei dati

Lo script seguente creerà direttamente

Names Default To Here( 1 );
// Create and example data table
dt = New Table( "Example",
Add Rows( 1 ),
New Column( "File",
Character,
"Nominal",
Set Values(
{
"D113U_NTCH_CM_MEAS_CD_SEM_{2UM_X6_NTCH_CM_IMAGE}_DX7DY11SDX11SDY15_2024-12-06_18-57-42.jpg"
}
)
)
);
// Add the new columns to the data table
dt << New Column( "DX" );
dt << New Column( "DY" );
dt << New Column( "SDX" );
dt << New Column( "SDY" );
For Each Row(
// Separate the section of the File name into just the DX,DY,SDX,SDY part
string = Word( 1, Substr( :file, Contains( :file, "_DX" ) + 1 ), "_" );
// Change the string into a assignment statements
Substitute Into( string, "SDX", ";:SD_X=", "SDY", ";:SD_Y=", "DX", ";:D_X=", "DY", ";:D_Y=", "_", "" );
string = Substr( string, 2 ) || ";";
// Execute the assignment statements
Eval( Parse( string ) );
);