如何按列名将所有数据值乘以另一个表中每一列的乘数? (乘数表有一列包含列名,第二列包含乘数以应用于另一个表中的每一列。 并非所有列都有乘数。)我可以将乘数添加到数据表中自己的行中,但后来我被卡住了。 我知道我可以在外部快速做到这一点,但我确信在 JMP 中有一种方法可以做到这一点。
这是一个根据您描述的配置数据表更改 Big Class 数据表中的值的简单示例。
Names Default To Here( 1 );
// Open Data Table: big class.jmp
// → Data Table( "big class" )
dt = Open( "$SAMPLE_DATA/big class.jmp" );
dtConfig = New Table( "Config",
New Column( "Name", character, values( {"age", "height", "weight"} ) ),
New Column( "multiplier", values( {3, ., 2} ) )
);
dtColNames = dt << get column names( string );
For( i = 1, i <= N Rows( dtConfig ), i++,
If( Contains( dtColNames, dtConfig:Name[i] ) & Is Missing( dtConfig:multiplier[i] ) == 0,
temp = Column( dt, dtConfig:Name[i] ) << get values;
temp = temp :*</img> dtConfig:multiplier[i];
Column( dt, dtConfig:Name[i] ) << set values( temp );
)
);谢谢! 我把它传递给了内部客户。 我认为中间部分 dtConfig 不是必需的,因为乘数表已经存在。 (您只是创建了一个新的乘数表以在大类上使用作为示例。)在 For 循环中,他只需将 dtConfig 替换为他的乘数表的名称。 那个听起来是对的吗? 再次感谢!