Ho una serie di dati chiamata valore 2 che è stata inserita come carattere con le unità alla fine. Alcuni di essi sono inseriti come ml/min e altri come ul/s, e vorrei separare quelli che sono in ul/s in una nuova colonna completamente. Quale funzione dovrei usare per selezionare le righe che contengono un certo sottoinsieme di una stringa (avrei selezionato quelle che contengono "ul/s" per inserirle in una nuova colonna e poi cancellarle dalla colonna del valore 2). Pensavo che la funzione "contenisse" avrebbe fatto quello che volevo, ma finora non sembra funzionare.

current data table () << Select where (contains (:Value 2, "ul/s"))
Questo sarebbe un modo per farlo usando la funzione contiene(). Un altro modo per farlo sarebbe utilizzare Cols...Utilities...Text to Columns per separare la colonna Valore 2 in più colonne.
Se vuoi scriverlo in uno script, puoi farlo:
dt = data table( "your datatable name" );
dt << new column( "Value 3", Character );
for each row(
dt:"Value 3"n = Char( If( Contains( :"Value 2"n, "ul/s" ) != 0, :Value 2, "" ) );
dt:"Value 2"n = Char( If( Contains( :"Value 3"n, "ul/s" ) != 0, "", :Value 2 ) );
);
Sostituisci semplicemente il nome effettivo della tua tabella nella prima riga.
Tuttavia, se stai cercando di gestire unità miste e desideri semplicemente che siano comparabili, potresti provare a creare una nuova colonna con una formula come questa:
Num( Regex( :Value 2, "[0-9]+" ) ) *
If( Contains( :Value 2, "ul/s" ) != 0, 60 / 1000, 1 )
Ciò crea una colonna in cui i dati ul/s vengono convertiti in ml/min estraendo il valore numerico (utilizzando Regex) quindi applicando un fattore di conversione in base alla stringa nella cella. La colonna risultante è tutta in ml/min