Esiste un'alternativa alla funzione ShapeTutti,
Vorrei sapere se esiste una buona alternativa alla funzione "Shape" (anche le UDF - sono benvenute le funzioni definite dall'utente).
// 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);
Visualizza dati casuali originali casuali - dt1

Risultato della funzione Shape

Quello che spero di ottenere è convertire il formato lungo in dt1 o screenshot1 in formato wide ie
Prendi "n" elementi di Column1 e forma una nuova colonna.
Questo viene raggiunto usando la funzione di risagoma nella maggior parte degli ambienti come Matlab e R. Ti chiedi se c'è un modo migliore per farlo con "Shape" o una funzione alternativa.
Migliore
Uday
Re: C'è un'alternativa alla funzione ShapeCorri il
File ==> Split
produrrà una nuova tabella di dati. Vai al "Pannello tabella" nella parte in alto a sinistra della nuova tabella. Lì troverai una voce denominata "Sorgente". Fare clic destro su di esso e selezionare "Modifica". Ti mostrerà il codice utilizzato per creare la nuova tabella di dati.
Re: C'è un'alternativa alla funzione ShapeQuando ti abitui alle operazioni vettorializzate, penserai alla forma per tutto il percorso, avanti e indietro. Applicando solo il Trasporre() la funzione non ti darà quello che vuoi, ovviamente. Devi cambiare il Forma() chiamata di funzione in concerto. In particolare, è necessario scambiare il numero di righe e colonne quando si modella il vettore originale in previsione della trasposizione. Come questo:
// 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: C'è un'alternativa alla funzione ShapeNon è sbagliato combinare le operazioni con matrici e tabelle di dati, ma non è nemmeno necessario. Le matrici offrono molti vantaggi rispetto alle tabelle di dati in un caso come questo, però. Questi semplici esempi illustrano come si potrebbero formare matrici con elementi casuali di qualsiasi 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: C'è un'alternativa alla funzione Shape @markbailey :
L'ho già provato, tuttavia il risultato è simile a quello in basso, dove mi sarei aspettato solo 10 righe per colonna in base alla chiamata di funzione.
@txnelson
Potete fornire un esempio di come chiamare esattamente la funzione "Split" per ottenere questo risultato.

Re: C'è un'alternativa alla funzione ShapeOltre alla risposta di Jim, il tuo copione è molto vicino. Non mi aspetto che JMP funzioni esattamente come MATLAB o R, ma può ottenere gli stessi risultati. Il Forma() la funzione in JMP funziona in base alla riga anziché in base alla colonna come previsto. Basta applicare il Trasporre() funzione al risultato restituito dalla funzione Shape ():
// Reshape the data using Shape function
TestData1 = Transpose( Shape(TestData,10,N Rows(TestData)/10) );
Re: C'è un'alternativa alla funzione ShapePuoi ottenere ciò che ti serve dai menu a discesa usando
Tabelle ==> Split
o
Tabelle ==> Trasposizione