datos de fila divididos pero no dividir encabezado de columnaHola,
Puedo abrir el archivo csv sin ningún problema a continuación. ¿Cómo leer en el primer valor de cada columna que tiene _ y | división. Quiero mantener el encabezado de la columna con el mismo nombre para poder trazarlo más tarde.
Traté de abrir w / Data Preview para eliminar _ o | pero también divide el encabezado de la columna.
Data: <BR />ID,Name,Country,Column1_Value,Column2_Value_More,Percent_Name_Count<BR />125480,Jack,CA,0.310_0.310_0.310_0.310_0.310_0.310_0.310_0.310,0.610|0.610|0.610|0.610|0.610|0.610|0.610|0.610,0.7<BR /><BR />Keep: <BR />ID,Name,Country,Column1_Value,Column2_Value_More,Percent_Name_Count<BR />125480,Jack,CA,0.310,0.610,0.7
csv_file = "C:/test3.csv";
Open(csv_file);
test3.csv
ID,Name,Country,Column1_Value,Column2_Value_More,Percent_Name_Count
125480,Jack,CA,0.310_0.310_0.310_0.310_0.310_0.310_0.310_0.310,0.610|0.610|0.610|0.610|0.610|0.610|0.610|0.610,0.7
125481,Jane,US,0.300_0.300_0.300_0.300_0.300_0.300_0.300_0.300,0.600|0.600|0.600|0.600|0.600|0.600|0.600|0.600,0.69
125482,Joe,BZ,0.360_0.360_0.360_0.360_0.360_0.360_0.360_0.360,0.620|0.620|0.620|0.620|0.620|0.620|0.620|0.620,0.71
125483,Jim,FR,0.340_0.340_0.340_0.340_0.340_0.340_0.340_0.340,0.640|0.640|0.640|0.640|0.640|0.640|0.640|0.640,0.73
125484,Jerry,US,0.330_0.330_0.330_0.330_0.330_0.330_0.330_0.330,0.630|0.630|0.630|0.630|0.630|0.630|0.630|0.630,0.72
125485,John,CA,0.360_0.360_0.360_0.360_0.360_0.360_0.360_0.360,0.620|0.620|0.620|0.620|0.620|0.620|0.620|0.620,0.71
Gracias.
Re: dividir datos de fila pero no dividir encabezado de columnaNo estoy seguro de por qué el formato se estropeó. Quería mostrar qué es de los datos y lo que quiero conservar.
Data:
ID,Name,Country,Column1_Value,Column2_Value_More,Percent_Name_Count
125480,Jack,CA,0.310_0.310_0.310_0.310_0.310_0.310_0.310_0.310,0.610|0.610|0.610|0.610|0.610|0.610|0.610|0.610,0.7
Keep:
ID,Name,Country,Column1_Value,Column2_Value_More,Percent_Name_Count
125480,Jack,CA,0.310,0.610,0.7
Gracias de nuevo.
Re: dividir datos de fila pero no dividir encabezado de columnaEsta es una manipulación muy simple usando la función Word (). JMP tiene algunas capacidades de manipulación de personajes muy poderosas. Consulte la Guía de secuencias de comandos y el Índice de secuencias de comandos para obtener documentación.
names default to here(1);
dt=open("c:\test3.csv");
For Each Row(
:Column1_Value = word(1, :Column1_Value, "_" );
:Column2_Value_More = word(1, :Column2_Value_More, "|" );
);
dt:Column1_Value << data type(numeric);
dt:Column1_Value << modeling type(continuous);
dt:Column2_Value_More << data type(numeric);
dt:Column2_Value_More << modeling type(continuous);Re: dividir datos de fila pero no dividir encabezado de columnaJim
Gracias por la rápida respuesta. ¿Cómo puedo evitar el uso de código duro de la columna específica con word (). ¿Puedo usar bucles en Cols para cambiar dinámicamente _ y |?
Gracias.
Re: dividir datos de fila pero no dividir encabezado de columna- Dada la pregunta que hace, debe dedicar un tiempo a aprender los conceptos básicos de JSL. Lea la Guía de secuencias de comandos: Ayuda ==> Biblioteca de documentación JMP ==> Guía de secuencias de comandos
- Para responder a su pregunta, he modificado una de las funciones de Word () de mi script original para utilizar referencias dinámicas
names default to here(1);
dt=open("c:\users\jim\documents\test3.csv");
myWord = 1;
myColumn = "Column1_Value";
myDelimiter = "_";
For Each Row(
:Column1_Value = word(myWord, as Column( myColumn ), myDelimiter );
:Column2_Value_More = word(1, :Column2_Value_More, "|" );
);
dt:Column1_Value << data type(numeric);
dt:Column1_Value << modeling type(continuous);
dt:Column2_Value_More << data type(numeric);
dt:Column2_Value_More << modeling type(continuous);
Re: dividir datos de fila pero no dividir encabezado de columnaJim
Perdón por la confusión ya que soy nuevo y estoy aprendiendo JSL.
Si tengo más encabezados de columna, no quiero codificar el nombre del encabezado de la columna, sino recorrerlo para obtener el primer valor de split _ o |. Traté de intentar a continuación y sé que mi código está roto.
csv_file = "C:/test3.csv";
CSV_data = Open( csv_file );
col = CSV_data << get column names( string );
nc = N Items( col );
For( i = 1, i <= nc, i++,
For Each Row(
:col[i] = Word( 1, col[i], "_" );
:col[i] = Word( 1, col[i], "|" );
);
);
ID,Name,Country,Column1_Value,Column2_Value_More,Percent_Name_Count,COL1,COL2_ABC
125480,Jack,CA,0.310_0.310_0.310_0.310_0.310_0.310_0.310_0.310,0.610|0.610|0.610|0.610|0.610|0.610|0.610|0.610,0.7,0.7,0.9_0.9
125481,Jane,US,0.300_0.300_0.300_0.300_0.300_0.300_0.300_0.300,0.600|0.600|0.600|0.600|0.600|0.600|0.600|0.600,0.69,0.7,0.9_0.9
125482,Joe,BZ,0.360_0.360_0.360_0.360_0.360_0.360_0.360_0.360,0.620|0.620|0.620|0.620|0.620|0.620|0.620|0.620,0.71,0.7,0.9_0.9
125483,Jim,FR,0.340_0.340_0.340_0.340_0.340_0.340_0.340_0.340,0.640|0.640|0.640|0.640|0.640|0.640|0.640|0.640,0.73,0.7,0.9_0.9
125484,Jerry,US,0.330_0.330_0.330_0.330_0.330_0.330_0.330_0.330,0.630|0.630|0.630|0.630|0.630|0.630|0.630|0.630,0.72,0.7,0.9_0.9
125485,John,CA,0.360_0.360_0.360_0.360_0.360_0.360_0.360_0.360,0.620|0.620|0.620|0.620|0.620|0.620|0.620|0.620,0.71,0.7,0.9_0.9
Re: dividir datos de fila pero no dividir encabezado de columnaMuy cerca, pero si miras el último código que envié, verás que al hacer referencia a la columna sobre la que se va a actuar, coloqué una columna As () delante de ella, así que lo que realmente necesitas es
names default to here(1);
csv_file = "C:/test3.csv";
CSV_data = Open( csv_file );
col = CSV_data << get column names( string );
nc = N Items( col );
// You don't want the first 3 columns processed,
// or the last one processed, so the index values
// to be used needs to be changed to handle this
For( i = 4, i <= nc - 1, i++,
For Each Row(
as column(col[i]) = Word( 1, as column( col[i]), "_|" );
);
);