在列表中搜索分隔列的值<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />你好JMP人,
我經常使用包含在列中搜索列表中的任何值。 像這樣的東西:
match_list = { “AAA” , “CCC” } ;
single_rows = DT << 得到行在哪裡 ( 包含 ( match_list , : 單一價值 )) ;
這是搜索包含單個值的列的一種非常方便的方法。 但是很多次我需要進行類似的搜索,其中列包含由分隔符(通常是分號)分隔的多個值。

我的問題:是否有一種靈活的方式以與上述方法類似的方式搜索一列分隔值?我可以使用正則表達式在多值列中搜索單個值。 但是,我需要在多值列中搜索列表中包含的許多值。
下面是一些生成上表並在單值列上演示contains方法的代碼。
DT = 新表 ( “Searchtbl” ,添加行 ( 6 ) ,
新欄目 ( “單一價值” ,字符 ,公稱 ,
設定值 ( { “AAA” , “BBB” , “CCC” , “DDD” , “EEE” , “FFF” } ) ) ,
新欄目 ( “劃界價值” ,字符 ,公稱 ,
設定值 ( { “AAA” , “AAA; BBB; CCC; DDD; EEE” , “BBB; CCC; DDD” , “BBB; DDD; EEE; AAA” ,
“BBB; EEE” , “FFF; BBB” } )
)
) ;
match_list = { “AAA” , “CCC” } ;
single_rows = DT << 得到行在哪裡 ( 包含 ( match_list , : 單一價值 )) ;
Re:在列表中搜索分隔列的值如果你沒有nitems,我認為<< get rows where()將查找一個布爾值,而是獲取一個列表。 使用nitems,如果沒有交叉點,列表中將沒有任何內容,所以是錯誤的。
Re:在列表中搜索分隔列的值哇文斯太棒了。 我修改了它並提出了一個功能,由MS在這篇文章中大量借用: Re:快速比較兩個列表(不常見的元素)?
這是一些示例代碼。 事實證明你不需要[row()]構造。 但為什麼你需要nitems?
list_intersect = 功能 ( //查看list_1中的哪些項目在list_2中
{ LIST_1 , list_2 } ,
{ 默認本地 } ,
intersect_list = 關聯數組 ( LIST_1 ) << 相交 ( 關聯數組 ( list_2 ) ) << getkeys ;
) ;
列表1 = { “蘋果” , “梨” , “橙子” , “獼猴桃” , “西瓜” , “芒果” , “檸檬” , “bosc pear” } ;
列表2 = { “蘋果” , “梨” , “獼猴桃” , “橙子” , “草莓” , “西瓜” , “瓜” } ;
DT = 新表 ( “溫度” ,
新欄目 ( “水果” ,字符 , setValues方法 ( 列表1 || 列表2 ) )
) ;
list1_rows = DT << 獲取行 ( NITEMS ( list_intersect ( 話 ( : 水果 , “;” ) ,列表1 ))) ;
list2_rows = DT << 獲取行 ( NITEMS ( list_intersect ( 話 ( : 水果 , “;” ) ,列表2 ))) ;
Re:在列表中搜索分隔列的值我必須創建一個功能來完成它。但這似乎有效
list_doge = 功能 ( //查看list_1中的哪些項目在list_2中
{list_1,list_2},{DEFAULT LOCAL},
aa1 = 關聯數組 (LIST_1);
aa2 = 關聯數組 (list_2);
aa1 << 相交 (AA2);
aa1 << 得到鑰匙 ;
);
DT << 獲取行 ( NITEMS (list_doge( 話 (:定界價值[ 行 ()], “;” ),match_list)))