Basta guardare l'elenco delle funzioni dei caratteri disponibili nel file JMP Redattore di formule.

Non che qualcuno li conti, ma sono 42 funzioni! Inutile dire che se hai una colonna di caratteri e vuoi cambiarla in qualche modo, JMP probabilmente ha una funzione che lo fa per te.
Si noti, tuttavia, che nove di queste funzioni riguardano tutte, o principalmente, l'estrazione di una parte del valore di un carattere. Certo, questa è una delle operazioni più comuni: estrarre parte di una stringa di caratteri più grande. Questa è nota come sottostringa.
La funzione più ovvia per questo è il Sottostr() funzione, ma questa funzione richiede che tu sappia esattamente dove si trova la parte che ti interessa nella stringa più grande. Significa anche che la parte desiderata deve trovarsi nello stesso posto in ogni stringa.
Ecco perché adoro il Parola() funzione. È incredibilmente flessibile e funziona nel modo in cui penso.
IL Parola() la funzione accetta due argomenti obbligatori e uno facoltativo.
Parola(n, "testo", <"delimitatori">)
IL Parola() la funzione divide il testo in parole basate su Delimitatori hai specificato e restituisce il n th parola. Se non specifichi il file Delimitatori argomento, il delimitatore predefinito è lo stesso che usiamo per separare le parole nelle frasi: uno spazio.
Ad esempio, considera la seguente colonna di giorni:
| Giorno |
|---|
| 6 dicembre |
| 16 dicembre |
| 28 settembre |
| 19 maggio |
| 29 settembre |
| 11 settembre |
| 14 marzo |
| 13 novembre |
| 27 ottobre |
| 7 gennaio |
Separare il mese è facile con il Parola() funzione. Vuoi solo la prima parola di ogni stringa.
Parola (1, Giorno)
| Mese |
|---|
| Dicembre |
| Dicembre |
| settembre |
| Maggio |
| settembre |
| settembre |
| Marzo |
| novembre |
| ottobre |
| Gennaio |
Funziona bene in molti casi, ma il vero potere arriva quando pensi di usare altri caratteri come delimitatori per dividere una stringa in "parole".
Ecco un altro elenco. Queste sono le posizioni. Questa volta la latitudine e la longitudine sono incorporate nella stringa dietro il nome della città.
| Posizione |
|---|
| 1600 NEW BERN AVE Raleigh, NC [35.779892815000494, -78.61572674699966] |
| 3800 NEW BERN AVE Raleigh, NC [35.79777009600048, -78.57633099599968] |
| 3200 CAPITAL BLVD Raleigh, Carolina del Nord [35.822875239000496, -78.58848179699964] |
| 700 VARDAMAN ST Raleigh, Carolina del Nord [35.77016025800049, -78.61995064499968] |
| 2900 BASSWOOD DR Raleigh, Carolina del Nord [35.74121031600049, -78.60477047599966] |
| 1300 CURFMAN ST Raleigh, Carolina del Nord [35.76619700500049, -78.65143264899967] |
| 8500 SWARTHMORE DR Raleigh, Carolina del Nord [35.89068092800045, -78.60012101699965] |
| 1200 CANYON ROCK CT Raleigh, Carolina del Nord [35.76156160400046, -78.55683519199965] |
| 800 GREENWICH ST Raleigh, Carolina del Nord [35.768321829000456, -78.59393748999963] |
| 300 ROSELLE CT Raleigh, Carolina del Nord [35.788000157000454, -78.58367178499964] |
Sarebbe utile avere latitudine e longitudine in un'altra colonna.
Se pensi alle parentesi quadre come delimitatori, è piuttosto semplice. Vuoi solo la seconda "parola".
Parola(2, Posizione, "[]")
Ora hai una colonna (LatLong) di stringhe con latitudine e longitudine separate da una virgola e uno spazio.
| LatLong |
|---|
| 35.779892815000494, -78.61572674699966 |
| 35.79777009600048, -78.57633099599968 |
| 35.822875239000496, -78.58848179699964 |
| 35.77016025800049, -78.61995064499968 |
| 35.74121031600049, -78.60477047599966 |
| 35.76619700500049, -78.65143264899967 |
| 35.89068092800045, -78.60012101699965 |
| 35.76156160400046, -78.55683519199965 |
IL Parola() la funzione viene di nuovo in soccorso. Questa volta vogliamo usare la virgola e lo spazio come delimitatori. Se usiamo solo una virgola, la stringa della longitudine avrà uno spazio all'inizio. L'utilizzo di entrambi i delimitatori ci fornisce stringhe senza spazi.
Latitudine
Parola(1, LatLong, "," ")
Longitudine
Parola(2, LatLong, "," ")
Questi dovrebbero essere ripuliti ulteriormente convertendoli in numeri utilizzando il file Numero() funzione, ma questo è un esercizio per un altro post.
La chiave per sfruttare il Parola() La funzione è visualizzare le stringhe come "frasi" e pensare in modo astratto alla scelta dei delimitatori.
Ecco un esempio finale. Supponiamo di avere una colonna di numeri di lotto (LotNo) con un nome incorporato al centro:
| Lotto n |
|---|
| A30941ALTE69073172 |
| A82886ILEAK51521781 |
| A54715XSURVXC88997379 |
| A7860BATTBC97523479 |
| A79004ILEAK52159080 |
| A59508ABAEG58962051 |
| A44172ILEAK28255713 |
| A21319XSURVXC88014800 |
| A58308BATTBC49519851 |
| A19412C83938451 |
Ciò è difficile poiché il nome non ricorre nella stessa posizione nella stringa in ogni riga. Se pensi ai numeri nello stesso modo in cui pensi agli spazi durante la lettura, il nome diventa la "seconda" parola.
Parola(2, lotto n., "0123456789")
| NOME |
|---|
| ALTE |
| ILEAK |
| XSURVXC |
| BATTBC |
| ILEAK |
| ABAEG |
| ILEAK |
| XSURVXC |
| BATTBC |
| C |
Se hai tempo per imparare solo una delle 42 funzioni di caratteri nell'editor di formule, inizierei con Parola() funzione.
Molto utile.
Grazie per aver enfatizzato questo rispetto a tutti gli altri...!
Yee-Seng Lee ha scritto:
Grazie mille. Funziona perfettamente!
Jeff Perkinson ha scritto:
Prova il Articolo() funzione invece. È proprio come Word() tranne per il fatto che tratta più delimitatori come se ciascuno definisse un nuovo elemento.
Yee-Seng Lee ha scritto:
Ciao Jeff,
Se avessi una stringa = "1*2*3**5***8" dove è destinata a essere divisa in 8 colonne separate invece di 5, il che significa che il doppio ** dovrebbe essere considerato come una colonna con dati vuoti , mentre il triplo *** dovrebbe essere considerato come due colonne con dati vuoti, e così via, qualche soluzione alternativa con la funzione Word?
Jeff Perkinson ha scritto:
Grazie, Paolo. Ho aggiornato il post per correggere quella tabella.
Paolo Savarese ha scritto:
Jeff: Mi è piaciuto il tuo post sulla funzione WORD ma sono rimasto un po' confuso dall'ultimo esempio. Sembra che qualcosa sia fuori posto. Il primo lotto n. è A30941ALTE69073172 e la "parola" incorporata è, apparentemente, ALTE, tuttavia la parola (2, lotto n., "0123456789") viene mostrata come se restituisce il valore "C"? Inoltre, alcuni degli altri lotti n. avevano incorporato le parole "XSURVX" ma nessuno dei risultati mostrava che fosse stato selezionato. Inoltre, non ho visto la parola "VOLT" incorporata in nessuno dei Lotti n. ma appare come risultato della funzione WORD in due occasioni?
Grazie,
Di Paul.