come convertire i nomi delle colonne in un elenco di stringheCIAO,
Vorrei convertire i nomi delle colonne in stringhe ma non so come.
dt = Open( "$SAMPLE_DATA/Decathlon.jmp" );
col_names = dt << Get Column Names();
Show(col_names);
questo porta a
col_names = {Name, Country, Score, Name("100m"), Long Jump, Shot Put, High Jump, Name("400m"), Name("100m hurdles"), Discus, Pole Vault, Javelin, Name("1500m")};Vorrei invece avere qualcosa del genere:
col_names = {"Name", "Country", "Score", "100m", "Long Jump", "Shot Put", "High Jump", "400m", "100m hurdles", "Discus", "Pole Vault", "Javelin", "1500m"};Qualche idea?
Grazie per l'aiuto!
Ri: come convertire i nomi delle colonne in un elenco di stringhequanto segue assegnerà un valore stringa di un nome di colonna, per la prima colonna selezionata nella tabella di dati attiva corrente.
dt = current data table();
theName = ((dt<<GET selected="" columns=""></GET>
Ri: come convertire i nomi delle colonne in un elenco di stringhesupponiamo di avere un singolo nome di colonna come variabile, come trasformerei quel nome di colonna in una stringa? Ad esempio, una finestra di dialogo utente seleziona una colonna, voglio che il nome della colonna sia una stringa. Grazie.
Ri: come convertire i nomi delle colonne in un elenco di stringheFunzionava, ma dovevo prima creare una variabile per il nome del gruppo.
g=1;
GN = "ColGruppo"||j;
dt < < Colonne di gruppo(GN , col_list ) ;
lavorato.
Ma
dt < < Colonne di gruppo( "ColGruppo"||j , lista_col);
no.
Si è scoperto che questo era il problema da sempre.
Il messaggio di errore faceva sembrare che il problema fosse con l'elenco delle colonne.
Ri: come convertire i nomi delle colonne in un elenco di stringheFunziona:
dt = current data table();
col_list = {"Column 1", "Column 2", "Column 3"};
dt << Group Columns("ColGroup", col_list);Ri: come convertire i nomi delle colonne in un elenco di stringheIo ho il problema opposto. Devo convertire un elenco di stringhe in un elenco di nomi di colonne.
Ho un elenco di nomi di colonne come stringhe, {"col1", "col2", "col3"}
Voglio raggruppare quelle colonne ma quella funzione ha bisogno che l'elenco assomigli a questo:
dt << Group Columns("ColGroup", {:col1, :col2, :col3});
Ho provato molte permutazioni di eval, evapexpr e column ma non ho trovato quella corretta.
Ri: come convertire i nomi delle colonne in un elenco di stringhePoiché il tuo scopo dichiarato è quello di applicare gli stessi colori di Graph Builder ad altri grafici, potresti utilizzare Proprietà colonna - Colori valore per ottenere ciò che desideri?
Ri: come convertire i nomi delle colonne in un elenco di stringhecol_str = dt << Ottieni i nomi delle colonne( "Stringa" ); funziona in JMP 13.
Per JMP 12, utilizzare col_str = dt << Get Column Names( "String" );
Come ha suggerito Ian.
Ri: come convertire i nomi delle colonne in un elenco di stringheÈ possibile che l'espressione per lo script salvato di Graph Builder sia cambiata e, in tal caso, il modo in cui lo script viene analizzato dovrebbe essere modificato di conseguenza. Non ho quella versione installata quindi non posso controllare facilmente.
Ma dovresti essere in grado di usare l'approccio generale.
Ri: come convertire i nomi delle colonne in un elenco di stringheGrazie per il rapido feedback.
Uso JMP Pro 12.2.0. Questo potrebbe essere il motivo per cui i nostri risultati differisconoRi: come convertire i nomi delle colonne in un elenco di stringheHo riscontrato alcuni problemi con il software Community e potresti averne una versione incompleta. In ogni caso, il codice ora mi dà (JMP Pro 13.1 su un Mac):
{:height, :weight}
Ri: come convertire i nomi delle colonne in un elenco di stringheLa ringrazio per la risposta.
Purtroppo il tuo codice ritorna
{Empty()}Ri: come convertire i nomi delle colonne in un elenco di stringheSeguendo il pensiero di Jim, forse qualcosa del genere?
Names Default To Here( 1 );
// Make a Graph Builder report
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
gb = Graph Builder( Variables( X( :height ), Y( :weight ) ), Elements( Points( X, Y ), Smoother( X, Y ) ) );
// Post-hoc interrogation of the report . . .
// (1) Get the script that launched the platform (or do: ' sc = gb << getScript')
sc = (Report(gb) << getScriptableObject) << getScript;
// (2) Pick apart the script expression and get what's needed
varList = {};
for(i=1, i<=Narg(Arg(sc,1)), i++,
InsertInto(varList, Arg(Arg(Arg(sc,1), i),1));
);
Print(varList);
Il codice è un po' conciso, ma puoi usare 'Help > Scripting Guide' per vedere cosa fanno in 'Arg()' e 'NArg()'.
Ri: come convertire i nomi delle colonne in un elenco di stringheNames Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
gb = Graph Builder( Variables( X( :height ), Y( :weight ) ), Elements( Points( X, Y ), Smoother( X, Y ) ) );
// you could extract the x and y labels if you think
// these might have remained as the variable names
yvar=report(gb)[TextEditBox(3)]<<GET text=""></GET>
Ri: come convertire i nomi delle colonne in un elenco di stringheGrazie per il feedback.
L'idea è di usare JSL per fare qualcosa con l'elenco delle variabili del grafico (ad esempio controllare quale colore è stato assegnato dal generatore di grafici per una data variabile (che non so ancora come fare)) e utilizzare il risultato per fare qualcos'altro (ad esempio assicurarsi che lo stesso colore sia utilizzato in un altro grafico).
L'analisi dell'intero script del generatore di grafici restituito da Get Script per determinare l'elenco dei nomi delle variabili sembra essere un modo abbastanza complicato per farlo.
Ri: come convertire i nomi delle colonne in un elenco di stringheSe stai cercando di ottenere quali variabili sono state utilizzate Post Hoc per la piattaforma in esecuzione, puoi sempre estrarre lo script utilizzato per produrre la piattaforma ed esaminarlo per ottenere le variabili
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
obj = Graph Builder(
Variables(
X( :Sex ),
Y( :Height ),
Group X( :Age )
),
Elements( Box Plot( X, Y ) )
);
t = obj << Get Script;
Show( t );
Ri: come convertire i nomi delle colonne in un elenco di stringhe
Prova ad aggiungere String nella funzione Ottieni nomi colonne. Per esempio:
col_str = dt << Ottieni nomi colonne (stringa);
Risulta in
{"Nome", "Paese", "Punteggio", "100 m", "Salto in lungo", "Tira il peso", "Salto in alto", "400 m",
"100m ostacoli", "Disco", "Salto con l'asta", "Giavellino", "1500m"}
Ri: come convertire i nomi delle colonne in un elenco di stringheProva ad aggiungere String come argomento della funzione Ottieni nomi colonne.
Per esempio:
col_str = dt << Ottieni nomi colonne (stringa);
Risulta in
{"Nome", "Paese", "Punteggio", "100 m", "Salto in lungo", "Tira il peso", "Salto in alto", "400 m",
"100m ostacoli", "Disco", "Salto con l'asta", "Giavellino", "1500m"}Ri: come convertire i nomi delle colonne in un elenco di stringheC'è qualcosa di simile per Get Variables() ?
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
gb = Graph Builder( Variables( X( :height ), Y( :weight ) ), Elements( Points( X, Y ), Smoother( X, Y ) ) );
gbb = Report( gb )[Graph Builder Box( 1 )];
gbb << Get Variables();
Ri: come convertire i nomi delle colonne in un elenco di stringheGrazie!
Ri: come convertire i nomi delle colonne in un elenco di stringheProva '<< getColumnNames ( "Corda" )'.
Cerca i suggerimenti dell'editor che vengono visualizzati per le parole chiave colorate o usa "Guida> Indice di scripting" per scavare più a fondo.