¿Cómo multiplico todos los valores de datos por un multiplicador para cada columna que está en otra tabla, por nombre de columna? (La tabla de multiplicadores tiene una columna con los nombres de las columnas y una segunda columna con los multiplicadores que se aplican a cada columna de la otra tabla. No todas las columnas tienen un multiplicador). Puedo llegar tan lejos como para agregar el multiplicador a la tabla de datos en su propia fila, pero luego estoy atascado. Sé que puedo hacerlo rápidamente de forma externa, pero estoy seguro de que hay una forma de hacerlo en JMP.
Aquí hay un ejemplo simple de cómo cambiar los valores en la tabla de datos de Big Class, basado en una tabla de datos de configuración como usted describe.
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 );
)
);¡Gracias! Se lo pasé al cliente interno. Supongo que la sección central dtConfig no sería necesaria, ya que la tabla de multiplicadores ya existe. (Simplemente estaba creando una nueva tabla de multiplicadores para usar en una clase grande como ejemplo). En el bucle For, simplemente reemplazaría dtConfig con el nombre de su tabla de multiplicadores. ¿Eso suena bien? ¡Gracias de nuevo!