¿Existe una alternativa a la función de forma?Todos,
Me gustaría saber si hay una buena alternativa a la función "Forma" (incluso las UDF - las funciones definidas por el usuario son bienvenidas).
// Generate Random Data
TestData = Random Shuffle(Random Index(10^4,10^3));
// Reshape the data using Shape function
TestData1 = Shape(TestData,10,N Rows(TestData)/10);
// Visualize data as data table
dt = As Table(TestData);
dt1 = As Table(TestData1);
Visualizar datos aleatorios originales sin procesar - dt1

Resultado de la función de forma

Lo que espero lograr es convertir el formato largo en dt1 o screenshot1 en formato ancho, es decir
Tome "n" elementos de Column1 y forme una nueva columna.
Esto se logra utilizando la función remodelar en la mayoría de los entornos como Matlab y R. Preguntándose si hay una mejor manera de hacer esto con "Forma" o una función alternativa.
Mejor
Uday
Re: ¿Hay una alternativa a la función de formaEjecutar el
Archivo ==> Split
producirá una nueva tabla de datos. Vaya al "Panel de tabla" en la parte superior izquierda de la tabla nueva. Allí encontrarás una entrada llamada "Fuente". Haga clic derecho sobre él y seleccione "Editar". Le mostrará el código que utilizó para crear la nueva tabla de datos.
Re: ¿Hay una alternativa a la función de formaCuando te acostumbras a las operaciones vectorizadas, pensarás en la forma todo el camino, hacia adelante y hacia atrás. Aplicando solo el Transponer() La función no te dará lo que quieres, por supuesto. Tienes que cambiar el Forma() Llamada de función en concierto. En particular, debe intercambiar el número de filas y columnas al dar forma al vector original antes de la transposición. Me gusta esto:
// Generate Random Data
TestData = Random Index( 10^4, 10^3 );
// Reshape the data using Shape function
TestData1 = Transpose( Shape( TestData, N Rows(TestData)/10, 10 ) );
// Visualize data as data table
dt = As Table( TestData );
dt1 = As Table( TestData1 );
Re: ¿Hay una alternativa a la función de formaNo es incorrecto combinar operaciones de matriz y tabla de datos, pero tampoco es necesario. Sin embargo, las matrices ofrecen muchas ventajas sobre las tablas de datos en un caso como este. Estos ejemplos simples ilustran cómo podría formar matrices con elementos aleatorios de cualquier forma:
Names Default to Here( 1 );
n = 10; // rows
m = 10; // columns
// generate matrix in steps
x = J( n*m, 1, Random Integer( 1, 6 ) ); // column vector of six-sided die rolls
x = Shape( x, n, m ); // form into columns row-wise
y = Transpose( x ); // other way
Show( x, y ); // see what you got
// generate a pattern matrix in a single step
i = 1;
x = J( n, m, i++ ); // row-wise
y = Transpose( x ); // other way
Show( x, y ); // see what you got
// generate a n by m matrix of random elements in a single step
x = J( n, m, Random Integer( 1, 6 ) ); // row-wise
y = Transpose( x ); // other way
Show( x, y ); // see what you got
Re: ¿Hay una alternativa a la función de forma @markbailey :
Ya lo he intentado, sin embargo, el resultado se ve como a continuación, donde habría esperado solo 10 filas por columna en función de la llamada a la función.
@txnelson
¿Puede proporcionar un ejemplo de cómo llamar exactamente a la función "Dividir" para lograr esto también?

Re: ¿Hay una alternativa a la función de formaAdemás de la respuesta de Jim, su guión es muy cercano. No esperaría que JMP funcione exactamente igual que MATLAB o R, pero puede lograr los mismos resultados. los Forma() la función en JMP funciona por filas en lugar de por columnas, como esperaba. Simplemente aplique el Transponer() Función al resultado devuelto por la función Shape ():
// Reshape the data using Shape function
TestData1 = Transpose( Shape(TestData,10,N Rows(TestData)/10) );
Re: ¿Hay una alternativa a la función de formaPuede obtener lo que necesita de los menús desplegables usando
Tablas ==> Split
o
Tablas ==> Transponer