'Group Columns()' 的可变列组名称大家好,
我试图根据字符串列表选择列,并将列转储到也基于列表的组中。
这是我正在使用的代码:
dt = Current Data Table();<BR />// phase names by which we want to group
groupnames = {"Centering", "Dwell", "Capture", "Locking"};
// all column names in the table
allcols = dt << Get Column Names();
For( i = 1, i <= N Items( groupnames ), i++,
curgroup = {};
dt << Clear Column Selection;
// get all cols with the phase name
For( j = 1, j <= N Items( allcols ), j++,
If( Contains( allcols[j], groupnames[i] ),
As Column( allcols[j] ) << Set Selected( 1 );
//Insert Into(curgroup, allcols[j]);
);
);
// make a new group from these columns
//dt << Group Columns(char(groupnames[i]), curgroup);
dt << Group Columns( groupnames[i] );
);我收到错误消息“JMP 无法确定要从给定脚本中分组的列。”
如果我将最后一行更改为类似 dt << Group Columns ("fixed string") 的内容,它将起作用(但它们都在同一组中)。我不确定我做错了什么。groupnames[i] 应该是一个字符串(对吗?),这是 Group Columns() 的预期输入。
谢谢,
克里斯托
回复:“Group Columns()”的可变列组名称再次感谢。我只是在看 html 文档,而不是书籍。
回复:“Group Columns()”的可变列组名称以下是获取有关转义字符的文档的方法。去
帮助==>书籍==>脚本指南
然后进行页面搜索
\!
它会直接带你到转义字符表
回复:“Group Columns()”的可变列组名称Eval Insert() 评估字符串中的变量。 字符串中的变量用“^”字符包裹。 Parse() 将字符串转换为表达式。 Eval() 计算表达式。
所以基本上你将表达式构建为字符串,变量值在字符串中解析,将字符串解析为表达式,然后计算表达式。
回复:“Group Columns()”的可变列组名称谢谢,做到了!关于不同转义序列的用途的任何指向文档的指针?Parse() 的“帮助”不是很有用。
回复:“Group Columns()”的可变列组名称有时,JMP 对评估应解析为预期参数类型的变量很奇怪。我通常尽量不这样做,但您通常可以使用 Eval-Parse-Eval Insert 序列来解决这些问题。这总感觉有点像 hack,但它就像带有 JSL 的胶带。
dt = Current Data Table();// phase names by which we want to group
groupnames = {"Centering", "Dwell", "Capture", "Locking"};
// all column names in the table
allcols = dt << Get Column Names();
For( i = 1, i <= N Items( groupnames ), i++,
curgroup = {};
// get all cols with the phase name
For( j = 1, j <= N Items( allcols ), j++,
If( Contains( allcols[j], groupnames[i] ) > 0,
Insert Into(curgroup, allcols[j]);
);
);
// make a new group from these columns
Eval(Parse(Eval Insert("\[dt << Group Columns( "^groupnames[i]^", curgroup )]\")));
);