¿Cómo insertar múltiples datos sin nombre de columna?A continuación se muestra JSL para hacer una tabla JMP.
dt = Nueva Tabla( "Ejemplo de Piso",
Nueva columna ("ID de unidad", Carácter, Nominal),
Nueva columna ("Datos1", Numérico, Continuo, Formato ("Mejor", 12)),
Nueva columna ("Datos2", Numérico, Continuo, Formato ("Mejor", 12)),
Nueva columna ("Datos3", Numérico, Continuo, Formato ("Mejor", 12)),
);
dtdatos={
{ID de unidad = "A", Datos1 = 1,1, Datos2 = 2,1, Datos3 = 3,1},
{ID de unidad = "B", Datos1 = 1,2, Datos2 = 2,2, Datos3 = 3,2},
{ID de unidad = "C", Datos1 = 1,3, Datos2 = 2,3, Datos3 = 3,3}
};
dt << Agregar filas (dtdata);
Me gustaría insertar varios datos sin definir el nombre de la columna de la siguiente manera.
dtdatos={
{"A", 1.1, 2.1, 3.1},
{"B", 1.2, 2.2, 3.2},
{"C", 1.3, 2.3, 3.3}
};
Arriba no es la respuesta correcta. Por favor, hágame saber la sintaxis JSL correcta.
Re: ¿Cómo insertar varios datos sin nombre de columna?Esta situación está cubierta en la documentación. Consulte Ayuda > Libros > Guía de secuencias de comandos. Hay una sección sobre diferentes formas de agregar filas a la tabla de datos. Hay muchos ejemplos a lo largo de la guía. Aquí está el extracto:
Agregar filas
Para agregar filas, envíe un mensaje Agregar filas y especifique cuántas filas. También puede especificar después de qué fila para insertar las nuevas filas. Los argumentos pueden ser números o expresiones. que evalúan a números.
dt << Add Rows( 3 ); // add 3 rows to bottom of data table
dt << Add Rows( 3, 10 ); /* add 3 rows after the 10th row, moving the 11th and lower rows farther down */
Una variación de Agregar filas le permite especificar un argumento que genera una lista de asignaciones.
Las asignaciones se pueden separar con comas o punto y coma.
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt << Add Rows(
{:name = "Peter", :age = 14, :sex = "M", :height = 61, :weight = 124}
);
o
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt << Add Rows(
{:name = "Peter"; :age = 14; :sex = "M"; :height = 61; :weight = 124}
);
Puede enviar varios argumentos que produzcan listas, o incluso una lista de listas. El siguiente guión
crea una tabla de datos con los comandos Agregar filas de cada variedad:
dt = New Table( "Cities" );
dt << New Column( "xx", Numeric );
dt << New Column( "cc", Character, width( 12 ) );
dt << Add Rows( {xx = 12, cc = "Chicago"} ); // single list
dt << Add Rows( {xx = 13, cc = "New York"}, {xx = 14, cc = "Newark"} );
// several lists
dt << Add Rows(
{{xx = 15, cc = "San Francisco"}, {xx = Sqrt( 256 ), cc = "Oakland"}}
); // list of lists
a = {xx = 20, cc = "Miami"};
dt << Add Rows( a ); // evaluate as single list
b={{xx = 17, cc = "San Antonio"},{xx = 18, cc = "Houston"}, {xx = 19, cc =
"Dallas"}};
dt << Add Rows( b ); // evaluate as list of lists
Re: ¿Cómo insertar varios datos sin nombre de columna?Aquí hay un par de opciones que funcionan con JMP 13 y superior.
dt = New Table( "Floor Example",
New Column( "Unit ID", Character, Nominal ),
New Column( "Data1", Numeric, Continuous, Format( "Best", 12 ) ),
New Column( "Data2", Numeric, Continuous, Format( "Best", 12 ) ),
New Column( "Data3", Numeric, Continuous, Format( "Best", 12 ) ),
);
dt << add rows(nitems(dtdata));
dtdata={
{"A", 1.1, 2.1, 3.1},
{"B", 1.2, 2.2, 3.2},
{"C", 1.3, 2.3, 3.3}
};
For Each Row(dt, dt[row(),1::ncol(dt)]=dtdata[row()]);
//or create a function to append
addrows = function({listofrows, ctbl=current data table()}, {nr,nc, i},
nr = nrow(ctbl);
nc = ncol(ctbl);
for(i=1, i <= nitems(listofrows), i++,
ctbl << add rows(1);
ctbl[nr+i, 1::nc] = listofrows[i]
);
); //end function
//add the rows again to demo this function
addrows(dtdata);