JMP 12.2
Vorrei capire il significato di questo numero e, soprattutto, come rimuoverlo / modificarlo. Vorrei evitare di duplicare le colonne poiché si tratta di tabelle molto grandi che devono essere manipolate rapidamente.
Il numero "19" mostrato dopo la parola "Carattere" di seguito (il numero può essere diverso, ho scelto 19 come esempio):
New Table( "Untitled",
Add Rows( 1 ),
New Column( "Column1", Character( 19 ), "Nominal", Set Values( {"Hello World"} ) )
)Una volta generata la tabella, come posso eliminare "(19)" nel modo più rapido possibile?
Provai:
:Column1 << Data type( Character );
:Column1 << Data type( Character() );<BR />:Column1 << Data type( Character(0) );
Posso vederlo usando GetScript (), non posso vederlo usando ShowProperties ();
Potresti dire che è benigno e di solito non mi preoccupo di questo numero, ma ho trovato un caso in cui un join diventa errato con il numero impostato (o forse questo numero dovrebbe influenzare i join).
La tua domanda mi ha confuso. Uso JMP dagli anni '90 e non ricordo di essermi mai imbattuto in "Character (x)". Quindi ho fatto delle indagini. La maggior parte dei riferimenti all'uso di questa notazione proviene dal fornire informazioni sulla larghezza della colonna alla lettura di file .txt o nelle applicazioni OLE. C'è un riferimento nella Guida allo scripting per "Aggiungi più colonne". Tuttavia, esaminando la sintassi nell'indice di scripting per "Aggiungi più colonne", si fa riferimento all'utilizzo di un elemento chiamato "larghezza di campo (numero)", non un (numero) dopo la specifica del tipo di dati di Carattere. Da quello che posso dire, imposta solo una larghezza minima della colonna creata. Poiché i valori / colonne dei caratteri JMP sono dinamici e possono avere una lunghezza compresa tra 0 e oltre un miliardo di caratteri, suggerirei che nella codifica non si utilizzi mai la specifica della larghezza dopo la definizione di una nuova colonna di tipo di dati Carattere.
Ora, come sbarazzarsi della larghezza minima.
Ho scoperto che se si assegna un valore di carattere di una lunghezza significativa, oltre la larghezza specificata, JMP ha rimosso la specifica della larghezza.
Quindi dato il tuo esempio
New Table( "Untitled",
Add Rows( 1 ),
New Column( "Column1", Character( 19 ), "Nominal", Set Values( {"Hello World"} ) )
);
Il recupero dello script della tabella dati restituisce
New Table( "Untitled",
Add Rows( 1 ),
New Column( "Column1",
Character( 19 ),
"Nominal",
Set Values( {"Hello World"} )
)
)
Se esegui il seguente JSL che ottiene il valore della prima riga nella tabella dati e assegna un valore lungo alla prima riga, quindi alla fine sostituisci il valore originale, utilizzando questo codice
holdValue = :Column1[1];
:Column1[1] = repeat("a",500);
:column1[1] = holdValue;
Lo script della tabella recuperato è
New Table( "Untitled",
Add Rows( 1 ),
New Column( "Column1", Character, "Nominal", Set Values( {"Hello World"} ) )
)
Il riferimento alla larghezza è stato rimosso.
Tutto questo è stato testato utilizzando JMP 12.2
Questo è il metodo che ho escogitato per eliminare il problema della larghezza dei caratteri. Qualche altro membro della comunità potrebbe avere un modo migliore. Spero che lo facciano!
Sì, ho avuto difficoltà a cercare la documentazione di ciò che significa il numero. Di sicuro non lo metto lì ... sembra essere generato automaticamente.
Il tuo metodo sembra funzionare ma mi chiedo se esista un modo più elegante per modificarlo o rimuoverlo.
Grazie mille per l'aiuto!