我有一组名为值 2 的数据,这些数据以字符形式输入,单位在末尾。其中一些输入为 ml/min,一些输入为 ul/s,我想将以 ul/s 为单位的数据完全分离到新列中。我应该使用什么函数来选择包含某个字符串子集的行(我打算选择包含“ul/s”的行,将它们输入到新列中,然后从值 2 列中删除它们)。我以为“contain”函数可以满足我的要求,但到目前为止似乎不起作用。

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 为单位