我有一組名為值 2 的數據,它已作為字元輸入,單位位於末尾。其中一些輸入為 ml/min,一些輸入為 ul/s,我想將 ul/s 中的輸入完全分離到一個新列中。我應該使用什麼函數來選擇包含字串某個子集的行(我要選擇包含“ul/s”的行,將它們輸入到新列中,然後從值 2 列中刪除它們)。我認為“包含”功能可以滿足我的要求,但到目前為止它似乎不起作用。

current data table () << Select where (contains (:Value 2, "ul/s"))
這是使用 contains() 函數來執行此操作的一種方法。另一種方法是使用 Cols...Utilities...Text to Columns 將 Value 2 欄位分成多個欄位。
如果你想編寫腳本,你可以這樣做:
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 ) );
);
只需在第一行替換您的實際表名稱即可。
但是,如果您嘗試處理混合單位並且只是希望它們具有可比性,則可以嘗試使用以下公式建立一個新欄位:
Num( Regex( :Value 2, "[0-9]+" ) ) *
If( Contains( :Value 2, "ul/s" ) != 0, 60 / 1000, 1 )
這會建立一個列,其中透過提取數值(使用正規表示式)將 ul/s 資料轉換為 ml/min,然後根據儲存格中的字串套用轉換因子。所得色譜管均以 ml/min 為單位