Estamos generando un script para automatizar la producción de columnas de coordenadas XY en 2D a partir de una orientación de gráfico 3D seleccionada por el usuario. El script llamará a un código R para realizar los cálculos, pero debe proporcionar los datos de la columna XYZ y la configuración de rotación a R.
A partir de un script de diagrama de dispersión 3D guardado, podemos ver los nombres de las columnas XYZ (zue1...) y las configuraciones de rotación (-8...). Necesitamos código jsl para seleccionar esas columnas y exportar un archivo csv. Y código para seleccionar y exportar los valores de las configuraciones de rotación.
Cualquier consejo sería apreciado.
Scatterplot 3D(
Y( :zue1, :zue2, :zue3 ),
Frame3D(
Set Grab Handles( 0 ),
Set Rotation( -8.15592033195416, 47.3040538060599, 75.4291344975828 )
)
);
En lugar de utilizar archivos CSV como intermediario, es posible que desee examinar el Integración JMP y R .
@ian_jmp la sugerencia de llamar a las rutinas R desde JMP realmente podría ser una excelente manera de resolver el problema.
Si realmente necesita usar una tabla de datos de paso de csv, aquí hay un ejemplo simple de una forma de lograr la creación de un archivo csv
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA\big class.jmp" );
sp = Scatterplot 3D(
Y( :age, :height, :weight ),
Frame3D( Set Grab Handles( 0 ), Set Rotation( -54, 0, 38 ) )
);
sp << on close(
theScript = Char( (Report( sp ) << get scriptable object) << get script );
varsList = {};
Insert Into( varsList, Word( 2, Substr( theScript, Contains( theScript, "Y(" ) ), ":," ) );
Insert Into( varsList, Word( 4, Substr( theScript, Contains( theScript, "Y(" ) ), ":," ) );
Insert Into( varsList, Word( 6, Substr( theScript, Contains( theScript, "Y(" ) ), ":,)" ) );
rotationList = {};
Insert Into( rotationList, Word( 2, Substr( theScript, Contains( theScript, "Rotation(" ) ), "()," ) );
Insert Into( rotationList, Word( 3, Substr( theScript, Contains( theScript, "Rotation(" ) ), "()," ) );
Insert Into( rotationList, Word( 4, Substr( theScript, Contains( theScript, "Rotation(" ) ), "()," ) );
dtSub = dt << subset( columns( Eval( varsList ) ), selected rows( 0 ) );
dtSub << New Column( "_Vars_", character, set values( varsList ) );
dtSub << New Column( "_Rotation_", character, set values( rotationList ) );
dtSub << Save( "$TEMP/passvalues.csv" );
close( dtSub, nosave );
);
// This line opens the csv back into JMP
//open("$TEMP/passvalues.csv");