Come scrivere un comando su Formula-Character<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Mi piacerebbe sapere come scrivere un comando realizzabile utilizzando la funzionalità Formula-Carattere.
Ad esempio, ho una colonna di dati di carattere con dati come livellati dalla Classe 1.0 alla Classe 9.0.
Vorrei convertire queste informazioni in un'altra colonna che mostri solo da 1.0 a 9.0, come posso utilizzare la funzione carattere formula per scrivere un comando per questo?
L'altra richiesta che mi piace sapere è come posso modificare una colonna di dati carattere in un'altra istruzione in una nuova colonna.
Ad esempio, ho una colonna di caratteri di dati che mostra dolce, gustoso, acido,... e vorrei cambiarlo in dolce-->Bin1, gustoso-->Bin2, aspro-->Bin3. Come posso usare il carattere della formula per convertire il dolce -> Bin1 in una nuova colonna.
Grazie,
Re: Come scrivere un comando su Formula-CharacterCiao Bernie,
Mi dispiace che questo non funzioni per te! Penso di aver scelto un nome di colonna ambiguo che penso possa essere la fonte della confusione. Nel set di dati allegato ho una colonna denominata "OriginalColumn" e lo script sottostante fa riferimento a quella colonna nella funzione Word(). La funzione word non accetta argomenti per quali parole sta cercando, solo quale numero di parola e la colonna in cui cercare. È stato un mio errore utilizzare un nome di colonna "Classe" quando era quello che stavi cercando di rimuovere!Fammi sapere se lo script qui sotto funziona per la tabella allegata. In tal caso, dovresti essere in grado di cambiarlo in modo che funzioni per qualsiasi tabella che desideri modificando " :OriginalColumn " in modo che corrisponda a qualunque sia il nome della colonna nella tua tabella.
giuliano
// Crea una nuova colonna
Tabella dei dati correnti () << Nuova Colonna ( "ClasseNumeroSolo" , Carattere ) ;
//arresta l'aggiornamento della tabella fino a quando non vengono apportate tutte le modifiche, ottimo per tabelle di grandi dimensioni
Tabella dei dati correnti () << Inizia l'aggiornamento dei dati ;
//Applica le modifiche a ogni riga
Per ogni riga (
: ClassNumberOnly = Parola ( 2 , :Colonna originale )
) ;
// Fine "Aggiornamento dati"
Tabella dei dati correnti () << Fine aggiornamento dati ;
Re: Come scrivere un comando su Formula-CharacterCiao Giuliano,
In realtà, vorrei mantenerlo come carattere piuttosto che convertirlo in numerico.
Quello che vorrei solo è eliminare la "Classe" dalla "Classe 9.0" originale e mostrare solo "9.0".
Ho usato la parola (2, Classe), ma non ha funzionato.
Grazie,
Re: Come scrivere un comando su Formula-CharacterCIAO Bernie426
Sembra che tu voglia che la colonna risultante sia numerica, giusto? In tal caso, il suggerimento di Peter sopra è il modo giusto per gestirlo. Quando estrai un pezzo di una stringa, rimane una stringa, a meno che tu non dica a JMP che vuoi convertire la stringa in un numero. Ecco uno script completo con la funzione Num() racchiusa attorno alla funzione Word() e anche un'altra modifica per rendere la nuova colonna numerica quando viene creata.
Spero che questo funzioni per te!
giuliano
//Crea una nuova colonna NUMERICA
Tabella dei dati correnti () << Nuova Colonna ( "ClasseNumeroSolo" , Numerico ) ;
//arresta l'aggiornamento della tabella fino a quando non vengono apportate tutte le modifiche, ottimo per tabelle di grandi dimensioni
Tabella dei dati correnti () << Inizia l'aggiornamento dei dati ;
//Applica le modifiche a ogni riga
//La funzione seguente cercherà una colonna denominata "Classe"
//se i dati sono in una colonna con un nome diverso
//change :Class per essere qualunque sia il nome della colonna, ma
//assicurati di conservare : poiché ciò consente a JMP di sapere che lo sei
//riferimento a una colonna.
//questa funzione avvolge anche la funzione Word() in Num()
//che convertirà l'output del carattere in un numero
//consentendo alla colonna risultante di rimanere numerica
Per ogni riga (
: ClassNumberOnly = Num ( Parola ( 2 , : Classe ) )
) ;
// Fine "Aggiornamento dati"
Tabella dei dati correnti () << Fine aggiornamento dati ;
Ri: Come scrivere un comando su Formula-CharacterProva a utilizzare la funzione NUM per convertire il numero della stringa in un numero effettivo.
UN = "Classe 9" ;
B = num ( parola ( 2 , UN )) ;
Ri: Come scrivere un comando su Formula-CharacterCiao Giuliano,
Ho fatto funzionare perfettamente la sceneggiatura o la formula di "Match" e mi piace così tanto.
Tuttavia, non riesco a far funzionare la funzione "Parola" né sulla formula né sullo script.
Il caso che ho è una colonna esistente che va da Carattere di "Classe 1" a Classe 9" e mi piacerebbe avere accanto una nuova colonna che mostri solo il numero (da 1 a 9) ed è ancora in formato Carattere/Attributo.
Quindi, sulla base dello script Word () che hai scritto per me come esempio, abbiamo bisogno di informazioni di input per la colonna madre (Classe 1 ... Classe 9) e utilizziamo la funzione Word ()?
Grazie,
Bernie
Usando Words() per estrarre solo i numeri
// Crea una nuova colonna
Tabella dati corrente() << Nuova colonna("ClassNumberOnly", Character);
//arresta l'aggiornamento della tabella fino a quando non vengono apportate tutte le modifiche, ottimo per tabelle di grandi dimensioni
Tabella dati corrente() << Inizio aggiornamento dati;
//Applica le modifiche a ogni riga
Per ogni riga (
:ClassNumberOnly = Parola( 2, :Class )
);
// Fine "Aggiornamento dati"
Tabella dati corrente() << Fine aggiornamento dati;
Ri: Come scrivere un comando su Formula-CharacterCiao Bernie,
Sono contento di averlo chiesto! Ci sono alcuni modi in cui puoi avvicinarti a questo, a seconda che tu voglia scrivere una colonna formula o scrivere i valori effettivi. Circostanze diverse richiedono l'una o l'altra, quindi ho incluso i metodi per entrambi di seguito.
Per scrivere i valori effettivi:
| Usando Word() per estrarre solo i numeri |
|---|
// Crea una nuova colonna Tabella dei dati correnti () << Nuova Colonna ( "ClasseNumeroSolo" , Carattere ) ; //arresta l'aggiornamento della tabella fino a quando non vengono apportate tutte le modifiche, ottimo per tabelle di grandi dimensioni Tabella dei dati correnti () << Inizia l'aggiornamento dei dati ; //Applica le modifiche a ogni riga Per ogni riga ( : ClassNumberOnly = Parola ( 2 , : Classe ) ) ; // Fine "Aggiornamento dati" Tabella dei dati correnti () << Fine aggiornamento dati ; |
| Utilizzo di Match() per la ricodifica |
|---|
// Crea una nuova colonna Tabella dei dati correnti () << Nuova Colonna ( "AttributeRecode" , Carattere ) ; //arresta l'aggiornamento della tabella fino a quando non vengono apportate tutte le modifiche, ottimo per tabelle di grandi dimensioni Tabella dei dati correnti () << Inizia l'aggiornamento dei dati ; //Applica le modifiche a ogni riga Per ogni riga ( : AttributeRecode = Incontro ( : Attributo , "Gustoso" , "Bin3" , "Dolce" , "Bin2" , "Acido" , "Cestino1" , : Attributo ) ) ; // Fine "Aggiornamento dati" Tabella dei dati correnti () << Fine aggiornamento dati ; |
Per scrivere una colonna formula:
| Usando Word() per estrarre solo i numeri |
|---|
// Crea la colonna della formula Tabella dei dati correnti () << Nuova Colonna ( "ClasseNumeroSolo" , Carattere , Formula ( Parola ( 2 , : Classe ) ) ) ;
|
| Utilizzo di Match() per la ricodifica |
|---|
// Crea la colonna della formula Tabella dei dati correnti () << Nuova Colonna ( "AttributeRecode" , Carattere , Formula ( Incontro ( : Attributo , "Gustoso" , "Bin3" , "Dolce" , "Bin2" , "Acido" , "Cestino1" , : Attributo ) ) ) ;
|
Spero che questo ti aiuti!
giuliano
Ri: Come scrivere un comando su Formula-CharacterCiao Giuliano,
Quindi apprezzo che tu abbia letto di nuovo il mio post iniziale. Sì, sarebbe ancora meglio se ci fosse un'opzione di script dato che la sto usando quotidianamente.
Ri: Come scrivere un comando su Formula-CharacterPrego! Ho appena letto di nuovo il tuo post iniziale e mi è venuto in mente che potresti aver cercato una soluzione di scripting piuttosto che una soluzione di formula di colonna. In tal caso, fammelo sapere e posso aiutarti a configurarlo tramite uno script. Potresti aver notato in Col > Recode c'è anche un'opzione per fare in modo che JMP scriva la ricodifica come uno script, quindi inizierei da lì e potremmo adattare il codice per usare Word() per rispondere alla tua prima domanda.
Giuliano
Ri: Come scrivere un comando su Formula-CharacterGrazie mille per le utili informazioni Julinan.
Bernie
Ri: Come scrivere un comando su Formula-CharacterCIAO Bernie426 ,
Per estrarre un pezzo di una tua colonna puoi usare la funzione Word(), che accetta due argomenti: il primo è quale "parola" estrarre (qui inserirai un numero), e il secondo è la colonna con il testo che desideri estrarre da. C'è un terzo argomento facoltativo in cui puoi specificare i delimitatori che separano le parole, ma nel tuo caso funzionerà l'impostazione predefinita di uno "spazio". Quindi, per usarlo, crea una nuova colonna formula con Word(2,:Class) (dove :Class è la variabile in cui sono memorizzati i tuoi dati originali).Ad esempio (anche nel set di dati allegato):

Questo prenderà la seconda "parola" che è proprio ciò che è dopo il primo spazio incontrato, quindi solo i numeri.
Per la tua seconda domanda userei la funzione match (sotto). Puoi scriverlo tu stesso o utilizzare l'utilità di ricodifica della colonna per scriverlo per te. Per fare quest'ultimo, seleziona la colonna originale, quindi vai su Cols> Ricodifica. Specifica i nuovi valori che desideri che la tua variabile abbia, quindi seleziona "Colonna formula" invece di "In posizione".JMP creerà una nuova colonna utilizzando la funzione match.

Puoi usare Cols > Recode nello stesso modo per la tua prima domanda, ma se hai molti livelli usando Word() sarà più veloce che specificare manualmente la ricodifica.
Ho allegato un set di dati di esempio con queste formule.
Spero che aiuti!
giuliano