import: molti extra col. L'utente seleziona quelli che vogliono?Buongiorno,
Quindi sono nuovo di jsl e sto cercando di capirlo. I set di dati che ottengo dai nostri server hanno un sacco di colonne in più, spesso le colonne sono vuote. Spero di iniziare la maggior parte dei miei script con una finestra di dialogo selezionata dall'utente che consenta loro di selezionare / aggiungere / rilasciare colonne di loro scelta e, eventualmente, riordinarle in un ordine preferito? Qualsiasi aiuto?
Diciamo che le colonne sono:
| Col# | ColName | |
| 1 | date_export | |
| 2 | Tipologia di prodotto | |
| 3 | NUMERO_ARTICOLO | |
| 4 | ricetta | |
| 5 | date_run | |
| 6 | measurement_type | |
| 7 | Valore | |
| 8 | Strumento | |
| 9 | Bersaglio | |
OK, quindi alcune di queste colonne non sono necessarie e sono tutte decisamente fuori uso, solo da una prospettiva di osservazione umana. Idealmente, mi piacerebbe che lo script autoselect e ordini qualcosa come:
Col n .: 2, 8, 4, 5, 6, 7, 9
e quindi magari avere una finestra di dialogo utente che consente all'utente di selezionare qualsiasi altra colonna da aggiungere all'output riformattato, se lo desiderano.
cosa pensi?
Re: import: molti extra col. L'utente seleziona quelli che vogliono?Presumendo capisco la tua domanda:
// Open Sample Data Table
dt = Open( "$SAMPLE_DATA\Air Traffic.jmp" );
// Define list of columns to delete
DelList = {"Carrier Code","Flight Number"};
// Delete Columns
dt << Delete Columns(DelList); Re: import: molti extra col. L'utente seleziona quelli che vogliono?eccezionale! che dire di un elenco predeterminato di nomi di colonne? Come le mie tabelle di dati sono dotate di dozzine o colonne extra (spesso non vuote).
seleziona colname (crap1, crap2, crap3 ...)
elimina le colonne selezionate
quindi vai avanti per consentire la selezione dell'utente del resto in pareggio ridotto?
Re: import: molti extra col. L'utente seleziona quelli che vogliono?Ecco una parte di codice che uso per creare uno script di tabella che farà lo zapping delle colonne vuote quando sto leggendo i dati in:
// add a table script that will remove empty columns
dt << Set Property( "Remove Empty Columns",
dt = Current Data Table();
lstToDelete = {};
For (i=1,i<=NCols(dt),i++,
col = Column(dt,i);
If (Col Number(col)==0,
InsertInto(lstToDelete,i)
)
);
If (NItems(lstToDelete)>0,
dt << Delete Columns(lstToDelete)
);
);Re: import: molti extra col. L'utente seleziona quelli che vogliono?Mi piace molto, selezionando le colonne desiderate, invertendole e cancellando le colonne indesiderate.
Hai qualche consiglio per l'esecuzione di un prestep, in cui posso effettuare una "cancellazione" di massa di colli pre-specificati per ridurre la selezione dell'utente?
Sfortunatamente, i miei file di dati contengono alcune decine di colonne non necessarie per cose che non sono necessarie.
Forse qualcosa che potrei scrivere all'inizio di ogni dt = open (), per eliminare i "cols" non necessari noti?
Re: import: molti extra col. L'utente seleziona quelli che vogliono?dt = Open( "$SAMPLE_DATA\Big Class.jmp" );
// Get Column Names
ColNames = dt << Get Column Names("String");
// Open a window for user selection
NW1 = New Window("User Selection",
<< Modal,
V List Box(
Lineup Box(
Lb1 = List Box(ColNames);
)
),
H List Box(
Button Box("OK",
// Unload User Inputs
Rb1Val = Lb1 << Get Selected();
)
)
);
// Select Columns
for(i = 1, i <= N Items(ColNames), i ++,
If(Contains(Rb1Val,ColNames[i]),
Col = Column(dt,i); ;
Col << Set Selected(1);
);
);
// Delete Unwanted Columns
dt << Invert Column Selection ;
dt << Delete Columns ;Re: import: molti extra col. L'utente seleziona quelli che vogliono?Speriamo che la natura del formato di file straniero sia stabile. Potresti provare a utilizzare questo argomento per la funzione Open () per l'importazione:
Select Columns( "col", ... )
Supponendo di aver memorizzato il riferimento ai dati in una variabile (come dt) quando è stato aperto, è possibile quindi riordinare iterativamente le colonne usando questo modello:
dt << Go to Column( col ref ) // select column to move
<< Move Selected Columns( ... ) // move column to new location
<< Clear Column Selection; //
Spero che questa risposta ti metta sulla tua strada.
Re: import: molti extra col. L'utente seleziona quelli che vogliono?Hey Mark,
Tutte buone domande Vorrei poter solo scrivere una query sul front-end, ma il DB della mia azienda è bloccato. Dobbiamo inserire le richieste e ottenere un file .csv flat excel che contiene tutte queste colonne non necessarie e intestazioni con un nome errato in un ordine non corrispondente (ad esempio 35 colonne). Sto lavorando per ottenere l'accesso di sola lettura, ma questo è un problema diverso.
Re: import: molti extra col. L'utente seleziona quelli che vogliono?I file di origine sono piatti o relazionali? Qual è il tipo di file sorgente? Che tipo di file stai importando? Devi importare l'intero file?
Puoi interrogare un database per il risultato? In tal caso, puoi creare una query per darti quello che vuoi.