直接在列对话框过滤器中粘贴多个列名话题:添加内置功能,允许直接粘贴列名列表 - 从剪贴板 - 列对话框过滤器。
今天的解决办法:截至今天,我做了一个脚本,该脚本获取剪贴板内容 - 加载了列名 - 并将其转换为正则表达式。 然后,我将此正则表达式粘贴到过滤器中,并选择“正则表达式”过滤器模式。 这有效,但有点痛苦。
我在使用“列切换器”时经常使用它,但我认为这可能适用于许多其他需求。
用户界面回复:直接在列对话框过滤器中粘贴多个列名了解列名列表的来源和您的用法/期望可能很有用:
- 列表是逗号分隔的字符串(假设列名中没有逗号?
- 每个名字都会有双引号吗?
- 列表会用大括号括起来吗?
- 列表源是来自一个 JMP 表的用户选择还是一些外部源(如电子邮件或其他外部文档)?
- 名称是否完全匹配,区分大小写?
根据经验,有关范围和用途的更多详细信息可帮助 JMP 开发人员确定请求的大小和重要性。
回复:直接在列对话框过滤器中粘贴多个列名对于我个人的使用,我使用不带双引号和大括号的名称。
定界符可以是逗号、空格、制表符或进给托架。
列表源可能来自 JMP 或 Excel。
我使用完美匹配。
请在我写的脚本下面找到(我使用 Python 调用特殊字符替换,因为 JMP 脚本在处理“[”时很痛苦):
输入 = 窗口缓冲区中的列表
输出 = 窗口缓冲区中的正则表达式(然后,我将其粘贴到 JMP 的过滤器中并选择“正则表达式”模式)
//RAMIS - 2021
Names Default To Here( 1 );
//Get clipboard
data = Get Clipboard();
//split list into array
testList_raw = Words( data, " \!t\!n\!r," );
//keep only unique entries
myArray_set = Associative Array( testList_raw );
unique_myArray = myArray_set << Get Keys;
//replace special characters
Python Init();
Python Send( unique_myArray );
Python Submit(
"\[
myList =unique_myArray
myOutput = ','.join(myList)
myOutput = myOutput.replace("[","\\[")
myOutput = myOutput.replace("]","\\]")
myOutput = myOutput.replace(",","|")
]\"
);
Wait( 0 );
//output to window's clipboard
myClipboard = Python Get( myOutput );
Set Clipboard( myClipboard );
问候,
达米安·拉米斯 - 恩智浦