Vorrei etichettare i miei grafici con i valori e i nomi delle colonne per quel punto (come in un box plot). Attualmente lo faccio in Excel concatenando il nome della colonna con il valore nelle celle. Tuttavia, se posso farlo in JMP, mi farebbe risparmiare una notevole quantità di tempo.
Ad esempio, potrei avere colonne
A B C
1 2 100
1 2 200
2 5 300
Vorrei creare una nuova colonna che descriva le informazioni nelle altre colonne:
A = 1 : B = 2 : C = 100
A = 1 : B = 2 : C = 200
A = 2 : B = 5 : C = 300
Finora sono stato in grado di creare un elenco con i nomi delle colonne, ma non riesco a capire come iterare e concatenare gli altri valori.
cdt = Tabella dati corrente();
ColNames = {};
ThisLabel = {};
ColNames = cdt << Ottieni i nomi delle colonne ( string );
for(i=3;i<=5;i++)
concat(ThisLabel,ColNames[i]);
// è necessario più lavoro per ottenere i valori dalla tabella
grazie in anticipo
Ecco un modo per fare quello che vuoi.Il mio esempio mostra un modo codificato per risolvere il problema e anche un metodo più generico

Names Default To Here( 1 );
// Script to create the required column when the names of the columns are known
dt = New Table( "Example 1",
New Column( "A", Numeric, "Continuous", Format( "Best", 12 ), Set Values( [1, 1, 2] ) ),
New Column( "B", Numeric, "Continuous", Format( "Best", 12 ), Set Values( [2, 2, 5] ) ),
New Column( "C", Numeric, "Continuous", Format( "Best", 12 ), Set Values( [100, 200, 300] ) ),
New Column( "D", Character, Nominal, Formula( "A = " || Char( :A ) || ": B = " || Char( :B ) || ": C = " || Char( :C ) ) )
);
// Example where script examines the data table and from it, generates the new column
dt2 = New Table( "Example 2",
New Column( "A", Numeric, "Continuous", Format( "Best", 12 ), Set Values( [1, 1, 2] ) ),
New Column( "B", Numeric, "Continuous", Format( "Best", 12 ), Set Values( [2, 2, 5] ) ),
New Column( "C", Numeric, "Continuous", Format( "Best", 12 ), Set Values( [100, 200, 300] ) )
);
colNames = dt2 << get column names( string );
// Build the formula in a string variable
theCMD = "dt2 << New Column( \!"D\!", character, Nominal, formula(";
For Each( {col, index}, colNames,
If( index == 1,
theCMD = theCMD || "\!" " || col,
theCMD = theCMD || "\!" : " || col
);
theCMD = theCMD || " = \!" || Char( :" || col || ") || ";
);
theCMD = theCMD || "));";
Eval( Parse( theCMD ) );Se non hai davvero bisogno dei nomi delle colonne, un modo più veloce è selezionare le tue 3 colonne, quindi fare clic con il pulsante destro del mouse su una delle intestazioni di colonna e selezionare "Nuova colonna formula -> Carattere -> Concatena con virgola".
Oppure, se hai davvero bisogno dei nomi, puoi fare clic con il pulsante destro del mouse sulla nuova intestazione di colonna e selezionare "Formula..." e modificare manualmente la formula per includere i nomi delle intestazioni di colonna.È più lento ma non richiede il passaggio JSL.
Nota, se tutte le colonne sono numeriche, potrebbe essere necessario aggiungere una colonna temporanea che sia una colonna di caratteri per visualizzare l'opzione "Carattere" nell'elenco "Nuova colonna formula".Speriamo che questo venga semplificato in una versione futura: https://community.jmp.com/t5/JMP-Wish-List/Enable-string-concatenation-in-quot-New-Formula-Column-quot-gt/idc-p/582366#M3504