Gente,
Sto importando valori da file cvs. Uno di questi è una stringa. Tuttavia, JMP non è in grado di leggere il valore. La prima immagine è il file cvs in cui vengono importati tutti i valori tranne "FlexSEM1000". Quindi nessun problema lì. Tuttavia, la seconda immagine mostra la tabella JMP con la F????? valore. Come affronto questo problema? Codice relativo allegato.
Nei
Join_files = Expr(
For( i = 1, i <= N Items( path ), i+=2,
/*area, %area, and pore pixel count*/
jointable1 = Open( path[i] );
//jointable1 << Get Name;
samplename = Substr( jointable1 << Get Name, 1, 18 ); //sample replicate name //
samplename2 = Word(1,samplename, "_"); // Only sample name, no replicate suffix (i.e. a1, a2...)
jointable1 << New Column( "Sample",
Character,
Nominal,
Set Each Value( samplename ) // setting each row in column 1 to samp rep name //
);
/*diameter and pore pixel count*/
jointable2 = Open( path[i + 1] );
dt = Data Table( jointable1 ) << Join(
With( Data Table( jointable2 ) ),
Select( :Sample, :Area, :Name( "%Area" ),:scale, :thick, :pixelrad, :mag, :system),
SelectWith( :pixD1, :count1),
Cartesian Join
);
Close( jointable1, no save );
Close( jointable2, no save );
Columns();
Graphs();
Graphs2();
Graphs3();
dt << Set Name(samplename);
po = dt << get name;
dt << Save(SD1 || po);
);
);
Columns = Eval Expr(
//dt << New Column( "Condition", Character, Nominal, Set Each Value( "1:1" ) );
dt:Name( "%Area" ) << Set Name( "Image A pore area (%)", Numeric, Continuous );
dt:Area << Set Name( "Total Image pixel count (pore_part)", Numeric, Continuous );
dt:scale << Set Name("pix/mm scale", Numeric, Continuous);
dt:pixD1 << Set Name( "Pore Diameter (pixel)", Numeric, Continuous );
dt:count1 << Set Name( "Pore Pixel Count", Numeric, Continuous );
dt:thick << Set Name("d - thickness (m)", Numeric, Continuous);
dt:pixelrad << Set Name("LT Radius", Numeric, Continuous);
dt:mag << Set Name("Mag", Numeric, Continuous);
dt:system << Set Name("Image Mode", Character, Nominal);
dt:Sample << Set Display Width( 150 );

Craige,
Sono riuscito a tornare al codice sorgente che ha generato il CSV e ho riscontrato il problema. Tutti gli elementi nella tabella erano UTF-8, TRANNE l'elemento di interesse dell'ultima colonna. Ho corretto il codice e ora funziona tutto. Immagino che JMP vedesse sia UTF-8 che UTF-16 e, poiché vedeva già UTF-8, non riconosceva l'ultima colonna.
Molte grazie per tutto il tuo prezioso tempo.
Nei
Craige,
Aggiornamento rapido.
Ho scoperto che se apro manualmente il file CSV e lo salvo come "csv UTF-8", JMP riconoscerà "FlexSEM1000". Tuttavia questo è un passaggio manuale che vorrei eliminare.
Nei
Craige,
Continuerò a impegnarmi. Ho provato ad allegare il documento CSV nel caso qualcuno riuscisse a farlo funzionare, ma il sito non consentiva il caricamento.
Nel frattempo vado al programma che ha generato il file per vedere come è formattato. Originariamente i dati dell'ID di sistema venivano letti da un file di testo di sistema (accompagnato da immagini da un SEM) che era UTF16. Tuttavia è stato scritto uno script per passare a UTF8 e salvare nel file CSV.
Ho chiesto a JMP di esaminare entrambi i tipi, ma senza successo.
Nei
Grazie Craige,
Secondo il valore cvs " FlexSEM1000", quando lo cambio in " FlexSEM ", JMP è in grado di leggere senza problemi .
Mi farò un giro sfruttando i tuoi suggerimenti.
Nei