Estamos generando un script para automatizar la producción de columnas de coordenadas 2D XY 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.
Desde un script 3D de diagrama de dispersión guardado podemos ver los nombres de las columnas XYZ (zue1 ...) y la configuración de rotación (-8 ....).Necesitamos el código jsl para seleccionar esas columnas y exportar un archivo csv.Y código para seleccionar y exportar los valores de la configuración de rotación.
Se agradecería cualquier consejo.
Diagrama de dispersión 3D (
Y (: zue1,: zue2,: zue3),
Frame3D (
Establecer agarraderas ( 0 ),
Establecer rotación (- 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");