Creazione di un sottoinsieme di dati in base a un elenco di colonneCiao,
Ho un file di dati di grandi dimensioni con molte colonne di dati. Vorrei creare un modo automatizzato per sottoimpostare i dati grezzi in base a un elenco di colonne.
Se questa tabella è i miei dati grezzi
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| # | # | # | # | # | # | # | # | # | # |
| # | # | # | # | # | # | # | # | # | # |
e il mio elenco di colonne che vorrei sottoinsieme potrebbe essere [1,4,6,9]
Voglio generare una nuova tabella simile a questa
Il motivo per cui non posso semplicemente codificare quali colonne prendere è che l'elenco verrà aggiornato ogni tanto, quindi mi piacerebbe un modo più semplice per gestirlo.
Se ho bisogno di fornire maggiori informazioni fatemelo sapere.
Grazie!
Ri: Creazione di un sottoinsieme di dati in base a un elenco di colonneeval(evalexpr(
SubTable3[i] = Tables[i] << subset( selected rows(1), columns(
As Column(expr(MT_Col_Names[1])), As Column(expr(MT_Col_Names[2])) ), Invisible);
));
Ri: Creazione di un sottoinsieme di dati in base a un elenco di colonneForse provarci
eval(evalexpr((
SubTable3[i] = Tables[i] << subset( selected rows(1), columns(
As Column(expr(MT_Col_Names[1])), As Column(expr(MT_Col_Names[2])) ), Invisible);
));
))
Ri: Creazione di un sottoinsieme di dati in base a un elenco di colonneNon penso che sia necessario enumerare tutti gli elementi che hai in MT_Col_Names o racchiuderli in Column().Che tipo di dati si trovano all'interno di "MT_Col_Names"?
Ecco un esempio funzionante con un elenco di stringhe che rappresentano i nomi delle colonne che voglio mantenere:
dt = Open("$SAMPLE_DATA/Big Class.jmp");
dt << Select Rows({1,2,3});
sub_cols = {"name", "age", "sex"}; //same role as MT_Col_Names
dt2 = dt << Subset(selected rows(1), columns(sub_cols));Ri: Creazione di un sottoinsieme di dati in base a un elenco di colonneCiao,
Questo non funziona per me quando utilizzo:
SubTable3[i] = Tables[i] << subset( selected rows(1), columns(Column(MT_Col_Names[1]), Column(MT_Col_Names[2]), Column(MT_Col_Names[3]), Column(MT_Col_Names[4]), Column(MT_Col_Names[5]), Column(MT_Col_Names[6])), Invisible);
L'errore è:

E se cambio ' colonne' A 'Come colonne' , Funziona (nessun errore), ma vengono visualizzate tutte le colonne...
Grazie per qualsiasi aiuto,
Nir
Ri: Creazione di un sottoinsieme di dati in base a un elenco di colonneProbabilmente è davvero facile, ma sono confuso riguardo alla tua lista.Dici che non puoi codificare in quali colonne utilizzare perché cambierà, ma alla fine qualcuno non ha bisogno di enumerare le colonne da utilizzare quando l'elenco viene aggiornato?Altrimenti da dove viene quella lista? Se hai una variabile proprio nella parte superiore dello script che enumera tutte le colonne da utilizzare, è sufficientemente facile da mantenere?Se è così, ecco un semplice script che fa ciò:
//list of columns
subset_cols = {:Name("1"), :Name("4"), :Name("6"), :Name("9")};
dt = Current Data Table();
dt << Subset( All rows, columns( subset_cols ) )