如何在表达式中引用具有复杂名称的列初学者 JSL 脚本编写者在这里...
我想创建一个脚本,该脚本将删除任何列中缺少数据的任何行。现在,如果我重命名列,它将像这样工作:
clean_dt << selectWhere(IsMissing ( :THK ) ) << 删除行;
问题是,我希望这个脚本是动态的,并且能够处理我给它的任何列的任何名称,并通过列号引用它。 假设列名像这样复杂
Step::Measurement::Data::THK:Raw(平均值)
我不想每次都重命名我的列... 我已经尝试了几次我认为“应该”工作的东西,但它们并不如
clean_dt << selectWhere(IsMissing(专栏(8) )) << 删除行;
或者
clean_dt << selectWhere(IsMissing(:步骤::数据::THK:原始(平均) )) << 删除行; (列名太复杂,带有特殊字符)
每次出现此消息时出错
在访问或评估 'Is Missing' 、 Is Missing/*###*/(Column( 8 )) 时,参数应该是数字{1}
Re: 如何在表达式中引用具有复杂名称的列谢谢,这有效! 从这里应该很容易使用 i 作为列索引在循环中传递表达式Re: 如何在表达式中引用具有复杂名称的列使用 Select Where 消息时,标准需要基于当前行,因为 JMP 将查看每一行以查看该行是否符合标准。
因为 Column 函数实际上返回对整个列的引用,所以当您在 Select Where 消息中使用 Column 函数时,您需要包含当前行的下标。 这可以通过下标 [Row()] 或简称 [] 来完成。 见下文。
dt << Select where( Is Missing( Column( 8 )[] ) );
当您想使用带有特殊字符的列名时,可以使用带有列名字符串的名称解析器。 如果此字符串需要是变量,则需要改用 Column 函数。
dt << Select Where( Is Missing( :Name( "Step::Data::THK:Raw (Mean)" ) ) );
或者
str = "Step::Data::THK:Raw (Mean)";
dt << Select Where( Is Missing( Column( str )[] ) );