Divisione di una stringa di caratteri<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />CIAO! Voglio analizzare una stringa di caratteri. Ho 202 bit binari nella mia stringa e voglio tagliarla a metà. Credo che potrei trovare la lunghezza della stringa e magari far sì che restituisca i valori con un certo numero di caratteri. Semplicemente non sono sicuro di come usarlo effettivamente per tagliarlo a metà e avere due colonne con 101 bit ciascuna. E dopo averlo ottenuto, voglio separare ogni parte nella propria colonna. Quindi voglio 101 colonne di "1" o "0". Semplicemente non so come analizzarlo in base al numero di caratteri.
Grazie per qualsiasi aiuto!!
Ri: Dividere una stringa di caratteriGeneralmente esiste una dipendenza tra il modo in cui sono organizzati i dati e ciò che una piattaforma JMP ti fornirà (o non ti fornirà).
Non sono sicuro di aver capito completamente cosa stai cercando, ma se aggiungi questo codice a quello di Craige sopra penso che ti avvicinerai:
dt2 = dt<< Trasporre (
colonne( :c1, :c2, :c3, :c4, :c5, :c6, :c7, :c8, :c9, :c10 ),
Tabella di output( "Trasposizione dell'esempio" )
);
dt2 << Costruttore di grafici (
Mostra pannello di controllo( 0 ),
Variabili(
X(:Etichetta),
Y(:Riga 1),
Y(:Riga 2),
Y(:Riga 3),
Y(:Riga 4),
Y(:Riga 5)
),
Elementi( Posizione( 1 , 1 ), Barra( X, Y, Legenda( 12 ) ) ),
Elementi( Posizione( 1 , 2 ), Barra( X, Y, Legenda( 13 ) ) ),
Elementi( Posizione( 1 , 3 ), Barra( X, Y, Legenda( 15 ) ) ),
Elementi( Posizione( 1 , 4 ), Barra( X, Y, Legenda( 23 ) ) ),
Elementi( Posizione( 1 , 5 ), Barra( X, Y, Legenda( 27 ) ) )
);
Dovresti regolare i valori nella colonna "Label" in modo che siano le tensioni, e potresti farlo con "Recode" o attraverso un po' più di JSL. Una volta ottenuto ciò che desideri, potrebbe darsi che esista un modo più diretto per arrivarci.
Ri: Dividere una stringa di caratteriGrazie! Questo ha aiutato molto. Sfortunatamente quello era solo l'inizio di quello che volevo fare, e non sono sicuro di come fare il resto...
Quindi devo davvero indicare quale metà della stringa sto guardando. Tutte le 100 righe di stringhe che sto suddividendo riguardano gli stessi dati e tutte le prime mezze stringhe hanno lo stesso nome, così come le seconde mezze stringhe. E una volta ottenuto questo, devo rappresentare graficamente entrambe le metà separatamente. Quando ho provato a rappresentarlo manualmente in JMP, il risultato non è stato quello che mi aspettavo. Il modo in cui ho eseguito questa analisi è tramite Excel perché mostrava il grafico come volevo che fosse. Fondamentalmente mi servono solo tutte le nuove colonne in cui vanno i bit (in questo caso sono tensioni) lungo l'asse x e i dati lungo l'asse y
L'unico problema è che non sono riuscito a capire come farlo in JMP. Qualsiasi aiuto?
Grazie mille!!
Ri: Dividere una stringa di caratteriProva questo
// i dati di input sono una stringa di caratteri 1 e 0 che rappresentano i bit
stringa = "11110000111000110010";
// divide la stringa in due al centro
// questa sottostringa inizia dal carattere 1 e dura metà della lunghezza
prima metà = Substr( stringa, 1, Lunghezza( stringa ) / 2 );
// questa sottostringa inizia appena oltre la precedente e la
// la lunghezza implicita arriva fino alla fine
seconda metà = Substr( stringa, 1 + Lunghezza( stringa ) / 2 );
// i bit 1 e 0 vanno uno per colonna
ncols = Lunghezza( primo tempo );
// inizia una nuova tabella
dt = Nuova tabella("esempio");
// aggiunge colonne con nomi come "c3" per ogni bit
For( i = 1, i <= ncols, i++, // l'operatore || unisce due stringhe
dt << Nuova colonna( "c" || Char( i ) ) // i è un numero, char crea una stringa
);
// crea una funzione di supporto per aggiungere bit a una riga in dt
adddata = Function( {bits}, // parametro per la funzione
{i, c}, // variabili locali
dt <
For( i = 1, i <= Lunghezza( bit ), i++,
c = Colonna( dt, "c" || Char( i ) ); // come sopra
dt:c = Num( Substr( bit, i, 1 ) ); // inserisce il bit nella colonna
);
);
// ogni chiamata a adddata inserisce una riga di bit in dt
adddata(prima metà);
adddata(seconda metà);
adddata("1010101010");
adddata("1111111111");
adddata("0000000000");
