Stiamo generando uno script per automatizzare la produzione di colonne di coordinate XY 2D da un orientamento grafico 3D selezionato dall'utente.Lo script chiamerà un codice R per eseguire i calcoli, ma deve fornire i dati della colonna XYZ e le impostazioni di rotazione a R.
Da uno script 3D scatterplot salvato possiamo vedere i nomi delle colonne XYZ (zue1 ...) e le impostazioni di rotazione (-8 ....).Abbiamo bisogno del codice jsl per selezionare quelle colonne ed esportare un file csv.E codice per selezionare ed esportare i valori delle impostazioni di rotazione.
Tutto il consiglio sarebbe apprezzato.
Scatterplot 3D (
Y (: zue1,: zue2,: zue3),
Frame3D (
Set maniglie ( 0 ),
Imposta rotazione (- 8.15592033195416 , 47.3040538060599 , 75.4291344975828 )
)
);
Piuttosto che utilizzare i file CSV come intermediario, potresti voler esaminare il file Integrazione di JMP e R. .
@ian_jmp il suggerimento di chiamare le routine R da JMP potrebbe essere davvero un ottimo modo per risolvere il problema.
Se hai davvero bisogno di usare un passaggio csv attraverso la tabella dati, ecco un semplice esempio di un modo per realizzare la creazione di un file 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");