如何按列名將所有數據值乘以另一個表中每一列的乘數? (乘數表有一列包含列名,第二列包含乘數以應用於另一個表中的每一列。 並非所有列都有乘數。)我可以將乘數添加到數據表中自己的行中,但後來我被卡住了。 我知道我可以在外部快速做到這一點,但我確信在 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 替換為他的乘數表的名稱。 那個聽起來是對的嗎? 再次感謝!