Gibt es eine Alternative zur Shape-Funktion?Alles,
Ich würde gerne wissen, ob es eine gute Alternative zur "Shape" -Funktion gibt (selbst UDFs - benutzerdefinierte Funktionen sind willkommen).
// 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);
Visualisieren Sie die ursprünglichen zufälligen Rohdaten - dt1

Ergebnis der Shape-Funktion

Was ich erhoffe, ist das Konvertieren des langen Formats in dt1 oder screenshot1 in das Breitformat, dh
Nehmen Sie "n" Elemente von Spalte1 und bilden Sie eine neue Spalte.
In den meisten Umgebungen wie Matlab und R wird dies mit der Umformungsfunktion erreicht. Fragen Sie sich, ob dies mit "Shape" oder einer alternativen Funktion besser möglich ist.
Beste
Uday
Re: Gibt es eine Alternative zur Shape-Funktion?Führen Sie das aus
Datei ==> aufteilen
es wird eine neue Datentabelle erzeugt. Gehen Sie zum "Table Panel" oben links in der neuen Tabelle. Dort finden Sie einen Eintrag mit dem Namen "Source". Klicken Sie mit der rechten Maustaste darauf und wählen Sie "Bearbeiten". Daraufhin wird der Code angezeigt, mit dem die neue Datentabelle erstellt wurde.
Re: Gibt es eine Alternative zur Shape-Funktion?Wenn Sie sich an vektorisierte Operationen gewöhnt haben, denken Sie über den gesamten Weg nach vorne und nach hinten nach. Nur das anwenden Transponieren() Die Funktion gibt Ihnen natürlich nicht das, was Sie möchten. Du musst das ändern Gestalten() Funktionsaufruf im Konzert. Insbesondere müssen Sie die Anzahl der Zeilen und Spalten vertauschen, wenn Sie den Originalvektor in Erwartung der Transposition formen. So was:
// 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: Gibt es eine Alternative zur Shape-Funktion?Es ist nicht falsch, Matrix- und Datentabellenoperationen zu mischen, aber es ist auch nicht notwendig. Matrizen bieten jedoch in einem solchen Fall viele Vorteile gegenüber Datentabellen. Diese einfachen Beispiele zeigen, wie Sie Matrizen mit beliebigen Elementen beliebiger Form bilden können:
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: Gibt es eine Alternative zur Shape-Funktion? @ Markbailey :
Ich habe das bereits ausprobiert - das Ergebnis sieht jedoch wie folgt aus - wobei ich nur 10 Zeilen pro Spalte basierend auf dem Funktionsaufruf erwartet hätte.
@txnelson
Können Sie ein Beispiel dafür angeben, wie Sie die Funktion "Teilen" genau aufrufen können, um auch dies zu erreichen.

Re: Gibt es eine Alternative zur Shape-Funktion?Abgesehen von Jims Antwort ist dein Skript sehr nahe. Ich würde nicht erwarten, dass JMP genauso funktioniert wie MATLAB oder R, aber es kann die gleichen Ergebnisse erzielen. Das Gestalten() Die Funktion in JMP funktioniert zeilenweise und nicht wie in der Spalte. Einfach das anwenden Transponieren() Funktion auf das von der Shape () - Funktion zurückgegebene Ergebnis:
// Reshape the data using Shape function
TestData1 = Transpose( Shape(TestData,10,N Rows(TestData)/10) );
Re: Gibt es eine Alternative zur Shape-Funktion?Sie erhalten das, was Sie benötigen, aus den Pulldown-Menüs, indem Sie verwenden
Tabellen ==> aufteilen
oder
Tabellen ==> Transponieren