<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
是否有人有一个 JSL 脚本,可以将一个数据表中的列属性复制到另一个数据表中的“同名”列?
该错误消息意味着您的新公式列涉及同一表中不存在的一个或多个列。 您确定计算公式值所需的所有列都在新表中吗?
你好,
我找到了这篇相对较旧的帖子,并尝试将解决方案应用于我正在执行的脚本,但我在调试器中收到以下错误消息:
“公式引用了另一个表中的列或表变量,但无法找到重新映射到此表的方法”
我的情况有点简单,因为我只是尝试复制单个列的属性
colProps = Column( dt, "Response Predictor" ) << Get Column Properties;
Column( dtparms, "Formula" ) << Add Column Properties( colProps );
知道我做错了什么吗?
约翰
感谢您的帮助。 这就成功了! 我的新表将始终是“主表”的子集,并且“try”语句确实解决了这个问题。
楼
“快速修复”:将循环的第二行放入其中尝试()以避免新表中缺少任何列时出现错误(此处列顺序不重要)。
Try( Column( nt, colNames[i] ) << Add Column Properties( colProps ) );
感谢您的帮助。 我试图迭代这两个表,但没有正确的命令。
看起来只要两个表具有相同的列、相同的顺序就可以工作。 它是否正确?
楼
卢,
下面演示了如何将列属性从一个表复制到另一个表(假设列名称相同)。
dt = Open( "$SAMPLE_DATA\Tiretread.jmp" );
colNames = dt << Get Column Names( String );
nt = New Table( "New Tires",
New Column( "ABRASION", Numeric, Continuous, Format( "Best", 10 ) ),
New Column( "MODULUS", Numeric, Continuous, Format( "Best", 10 ) ),
New Column( "ELONG", Numeric, Continuous, Format( "Best", 10 ) ),
New Column( "HARDNESS", Numeric, Continuous, Format( "Best", 10 ) ),
New Column( "SILICA", Numeric, Continuous, ),
New Column( "SILANE", Numeric, Continuous, Format( "Best", 10 ) ),
New Column( "SULFUR", Numeric, Continuous, Format( "Best", 10 ) ),
New Column( "Pred Formula ABRASION", Numeric, Continuous, Format( "Best", 10 ) ),
New Column( "Pred Formula MODULUS", Numeric, Continuous, Format( "Best", 10 ) ),
New Column( "Pred Formula ELONG", Numeric, Continuous, Format( "Best", 10 ) ),
New Column( "Pred Formula HARDNESS", Numeric, Continuous, Format( "Best", 10 ) )
);
For( i = 1, i <= N Cols( dt ), i++,
colProps = Column( dt, colNames ) << Get Column Properties;
Column( nt, colNames ) << Add Column Properties( colProps );
);