Aufteilen einer Zeichenfolge<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Hallo! Ich möchte eine Zeichenfolge analysieren. Ich habe 202 Binärbits in meiner Zeichenfolge und möchte diese Zeichenfolge halbieren. Ich glaube, ich könnte die Länge der Zeichenfolge ermitteln und sie möglicherweise dazu bringen, die Werte bei einer bestimmten Anzahl von Zeichen zurückzugeben. Ich bin mir nur nicht sicher, wie ich das tatsächlich nutzen soll, um es zu halbieren und zwei Spalten mit jeweils 101 Bits zu haben. Und nachdem ich das verstanden habe, möchte ich jedes Teil in eine eigene Spalte aufteilen. Ich möchte also 101 Spalten mit entweder einer „1“ oder einer „0“ darin haben. Ich weiß einfach nicht, wie ich es nach der Anzahl der Zeichen analysieren soll.
Vielen Dank für jede Hilfe!!
Betreff: Aufteilen einer ZeichenfolgeIm Allgemeinen besteht eine Abhängigkeit zwischen der Art und Weise, wie Ihre Daten organisiert sind, und dem, was Ihnen eine JMP-Plattform bietet (oder nicht).
Ich bin mir nicht sicher, ob ich vollständig verstanden habe, was Sie wollen, aber wenn Sie diesen Code zu Craiges oben hinzufügen, werden Sie meiner Meinung nach dem nahe kommen:
dt2 = dt << Transponieren (
Spalten( :c1, :c2, :c3, :c4, :c5, :c6, :c7, :c8, :c9, :c10 ),
Ausgabetabelle( „Beispiel transponieren“ )
);
dt2 << Graph Builder (
Systemsteuerung anzeigen( 0 ),
Variablen(
X( :Label ),
Y( :Zeile 1 ),
Y( :Zeile 2 ),
Y( :Zeile 3 ),
Y( :Zeile 4 ),
Y( :Zeile 5 )
),
Elemente( Position( 1 , 1 ), Balken( X, Y, Legende( 12 ) ) ),
Elemente( Position( 1 , 2 ), Balken( X, Y, Legende( 13 ) ) ),
Elemente( Position( 1 , 3 ), Balken( X, Y, Legende( 15 ) ) ),
Elemente( Position( 1 , 4 ), Balken( X, Y, Legende( 23 ) ) ),
Elemente( Position( 1 , 5 ), Balken( X, Y, Legende( 27 ) ) )
);
Sie müssten die Werte in der Spalte „Label“ so anpassen, dass sie die Spannungen darstellen, und Sie könnten dies mit „Recode“ oder durch etwas mehr JSL tun. Sobald Sie das haben, was Sie wollen, gibt es möglicherweise einen direkteren Weg dorthin.
Betreff: Aufteilen einer ZeichenfolgeDanke schön! Das hat sehr geholfen. Leider war das erst der Anfang von dem, was ich tun wollte, und ich bin mir nicht sicher, wie ich den Rest erledigen soll ...
Ich muss also unbedingt angeben, welche Hälfte der Saite ich betrachte. Alle 100 Zeilen mit Zeichenfolgen, die ich aufteile, sind für dieselben Daten bestimmt, und alle Zeichenfolgen der ersten Hälfte haben denselben Namen, ebenso wie die Zeichenfolgen der zweiten Hälfte. Und sobald ich das habe, muss ich beide Hälften separat grafisch darstellen. Als ich versuchte, es manuell in JMP grafisch darzustellen, verlief das Ergebnis nicht wie erwartet. Ich habe diese Analyse mit Excel durchgeführt, weil das Diagramm so angezeigt wurde, wie ich es wollte. Im Grunde brauche ich nur alle neuen Spalten, in die die Bits (in diesem Fall sind es Spannungen) entlang der x-Achse und die Daten entlang der y-Achse gehen
Das einzige Problem ist, dass ich nicht herausgefunden habe, wie das in JMP geht. Irgendeine Hilfe?
Vielen Dank!!
Betreff: Aufteilen einer ZeichenfolgeVersuche dies
// Eingabedaten sind eine Zeichenfolge aus Einsen und Nullen, die Bits darstellen
string = "11110000111000110010";
// Teile die Zeichenfolge in der Mitte in zwei Teile
// Dieser Teilstring beginnt bei Zeichen 1 und erstreckt sich über die halbe Länge
firsthalf = Substr( string, 1, Länge( string ) / 2 );
// dieser Teilstring beginnt direkt hinter dem vorherigen und dem
// implizite Länge geht bis zum Ende
secondhalf = Substr( string, 1 + Länge( string ) / 2 );
// Die 1- und 0-Bits gehen eins pro Spalte
ncols = Länge( erste Hälfte );
// einen neuen Tisch starten
dt = New Table( "example" );
// Spalten mit Namen wie „c3“ für jedes Bit hinzufügen
For( i = 1, i <= ncols, i++, // der ||-Operator verbindet zwei Strings
dt << New Column( "c" || Char( i ) ) // i ist eine Zahl, char ergibt einen String
);
// eine Hilfsfunktion erstellen, um Bits zu einer Zeile in dt hinzuzufügen
adddata = Function( {bits}, // Parameter zur Funktion
{i, c}, // lokale Variablen
dt << addrows( 1 ); // Funktion weiß, dass sie dt verwenden muss
For( i = 1, i <= Länge( Bits), i++,
c = Column( dt, "c" || Char( i ) ); // das gleiche wie oben
dt:c = Num( Substr( bits, i, 1 ) ); // Bit in Spalte einfügen
);
);
// jeder Aufruf von adddata fügt eine Reihe von Bits in dt ein
adddata( firsthalf );
adddata( secondhalf );
adddata( "1010101010" );
adddata( "1111111111" );
adddata( "0000000000" );
