在列表中搜索分隔列的值<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)))