Ich habe einen Datensatz namens Wert 2, der als Zeichen mit den Einheiten am Ende eingegeben wurde. Einige davon sind als ml/min und einige als ul/s eingegeben, und ich möchte die in ul/s angegebenen Werte in eine komplett neue Spalte trennen. Welche Funktion soll ich verwenden, um die Zeilen auszuwählen, die eine bestimmte Teilmenge einer Zeichenfolge enthalten (ich wollte die Zeilen auswählen, die „ul/s“ enthalten, um sie in eine neue Spalte einzugeben und sie dann aus der Spalte mit dem Wert 2 zu löschen). Ich dachte, die Funktion „contain“ würde das tun, was ich möchte, aber bisher scheint sie nicht zu funktionieren.

current data table () << Select where (contains (:Value 2, "ul/s"))
Dies wäre eine Möglichkeit, dies mit der Funktion contains() zu tun. Eine andere Möglichkeit wäre, Cols...Utilities...Text to Columns zu verwenden, um die Spalte „Wert 2“ in mehrere Spalten aufzuteilen.
Wenn Sie ein Skript dafür erstellen möchten, können Sie Folgendes tun:
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 ) );
);
Ersetzen Sie einfach Ihren tatsächlichen Tabellennamen in der ersten Zeile.
Wenn Sie jedoch mit gemischten Einheiten arbeiten und diese nur vergleichbar machen möchten, können Sie versuchen, eine neue Spalte mit einer Formel wie der folgenden zu erstellen:
Num( Regex( :Value 2, "[0-9]+" ) ) *
If( Contains( :Value 2, "ul/s" ) != 0, 60 / 1000, 1 )
Dadurch wird eine Spalte erstellt, in der die ul/s-Daten in ml/min umgewandelt werden, indem der numerische Wert (mit Regex) extrahiert und dann ein Umrechnungsfaktor angewendet wird, der von der Zeichenfolge in der Zelle abhängt. Die resultierende Spalte ist vollständig in ml/min