Amigos,
Estoy importando valores de archivos cvs. Uno de ellos es una cadena. Sin embargo, JMP no puede leer el valor. La primera imagen es el archivo cvs donde se importan todos los valores excepto "FlexSEM1000". Así que no hay problemas allí. Sin embargo, la segunda imagen muestra la tabla JMP con la F????? valor. ¿Cómo abordo este problema? Se adjunta el código correspondiente.
neil
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 );

craig,
Pude volver al código fuente que generó el csv y encontré el problema. Todos los elementos de la tabla eran UTF-8, EXCEPTO el elemento de interés de la última columna. Arreglé el código y ahora todo funciona. Supongo que JMP estaba viendo tanto UTF-8 como UTF-16 y, dado que ya estaba viendo UTF-8, no reconoció la última columna.
Muchas gracias por todo su valioso tiempo.
neil
craig,
Actualización rápida.
Descubrí que si abro manualmente el archivo csv y lo guardo como "csv UTF-8", JMP reconocerá "FlexSEM1000". Sin embargo, ese es un paso manual que me gustaría eliminar.
neil
craig,
Seguiré desconectando. Intenté adjuntar el documento csv en caso de que alguien pudiera hacerlo funcionar, pero el sitio no permitía la carga.
Mientras tanto, iré al programa que generó el archivo para ver cómo se formatea. Originalmente, los datos de identificación del sistema se leían desde un archivo de texto del sistema (acompañado de imágenes de un SEM) que era UTF16. Sin embargo, se escribió un script para cambiar a UTF8 y guardarlo en un archivo csv.
Hice que JMP analizara ambos tipos, pero no tuve éxito.
neil
Gracias Craige,
Por el valor cvs " FlexSEM1000", cuando cambio esto a " FlexSEM ", JMP es capaz de leer sin problemas .
Voy a hurgar usando sus sugerencias.
neil