Analogia JMP con SAS 'Ciao a tutti
Sono un vecchio capo SAS (abbastanza abile nella programmazione di base ...). Ma... !
Mi piacerebbe fare un compito piuttosto semplice in JMP. Quindi sembra ...
Fondamentalmente, vorrei aprire CITIES.JMP e mantenere tutte le righe (e i campi) che hanno un valore mancante in CO, e possibilmente salvare questo sottoinsieme con una nuova, ad esempio CITIES_MISS.jmp.
L'equivalente di base è "dove manca il CO;"
Non riesco a risolverlo. Anche se le mie query sembrano funzionare, non appena apro il sottoinsieme, trovo ancora tutte le righe di dati, a volte solo segnate. Si prega di aiutare con il codice di esempio, e forse spiegare le differenze logiche tra la logica JMP e SAS, se ce n'è.
Grazie e cordiali saluti
Novizio
Re: analogia JMP con SAS 'Il JSL richiesto sarebbe qualcosa come:
NamesDefaultToHere(1);
dt1 = Open("$SAMPLE_DATA/Cities.jmp");
missingCORows = dt1 << getRowsWhere(IsMissing(:CO));
dt2 = dt1 << Subset(Rows(missingCORows));
dt2 << setName((dt << getName)||"_MISS");
Prova "Aiuto> Libri> Guida allo scripting" e "Guida> Indice di scripting". Piuttosto che pensare troppo ai confronti, vorrei iniziare con un problema e un codice funzionante che è "vicino" a una soluzione. L'esperienza dimostra che avrai molto aiuto qui.
Re: analogia JMP con SAS 'Grazie. Ora ho le righe.
Ieri ho trascorso circa quattro (!!) ore e non sono nemmeno riuscito a raggiungerlo
quel risultato usando la Guida allo scripting, JSL Syntax Reference, WWW.
Quindi, si prega di essere paziente con me se ti chiedo come mantenere anche tutto il
altri campi CTITIES, ad es CITTÀ, SO2, ecc. Cordiali saluti.
Re: analogia JMP con SAS 'Sono sicuro che stai cercando una versione di script di questo e lascerò che qualcun altro lo fornisca. Personalmente, sono in grado di fare il 95% di quello che voglio senza script, e per me questa è una delle principali differenze tra JMP e SAS (o quasi tutti gli altri programmi, per quello). Per fare ciò che vuoi - senza scripting - vai su Row - Row Selection - Select Where e completa il nome della colonna CO e lascialo vuoto. Selezionerà le 5 file che stai cercando. Quindi, in Tabelle, fai clic su Sottoinsieme e otterrai tutte le colonne e solo quelle 5 righe.
Sfortunatamente, non credo che ci sia un modo per JMP di scrivere automaticamente quello che ho appena fatto. Se fai un'analisi e vai a salvare lo script, lo script viene automaticamente prodotto. Ma non penso che ci sia un modo per far sì che JMP esegua automaticamente le manipolazioni della tabella. Vorrei che ci fosse - e forse c'è qualcosa di cui non sono a conoscenza.
Re: analogia JMP con SAS 'Grazie mille per la tua valutazione diretta
Parte del mio lavoro consiste nel valutare i punti di forza e i limiti di JMP per automatizzare i processi tramite script come requisito aziendale.
Se JMP non è in grado di gestire la maggior parte dei semplici processi ETL, dovremmo procedere senza JMP.
Sarebbe un peccato, però, perché il suo portafoglio di analisi sembra essere carino e dandy.
Re: analogia JMP con SAS 'Ovviamente JMP può fare ciò che vuoi con uno script. Sto semplicemente sottolineando che ciò che hai richiesto può essere fatto senza uno. Tutto ciò che faccio senza uno script ha uno script in esecuzione in background. Le 4 ore che hai speso cercando di far funzionare JMP sono state 4 ore cercando di capire lo script corretto. Ho impiegato 5 secondi per completare l'attività senza script. Capisco: il tuo compito è valutare JMP e un requisito è lo scripting. Bene, questo requisito è soddisfatto. Se la tua preoccupazione è quella di valutare il linguaggio di scripting, allora devi aspettare che gli altri rispondano - ci sono molte persone su questo forum che possono parlare allo scripting JMP rispetto ad altre lingue.
Re: analogia JMP con SAS 'Forse riformulo la mia richiesta alla comunità JMP. Puoi consigliare un
forum JMP specifico dove potrei chiedere un possibile approccio allo script JMP?
Re: analogia JMP con SAS 'Sono un poco chiaro per quanto riguarda la portata di ciò che vuoi fare quando dici ' dove potrei chiedere un possibile approccio allo script JMP '. Per cosa, esattamente?
Come accennato, questo è un buon posto per ottenere supporto per tutte le cose JMP, incluso JSL. Ma, come mostra forse questo thread, può essere difficile ottenere un quadro chiaro - Deprimente su come viene posta la domanda, le risposte possono o non possono essere immediatamente utili, e possono o meno assumere più contesto e conoscenze precedenti rispetto a quelle del questionario ha.
E, come già affermato, i "confronti" possono essere diversi per la codifica: sono ancora più difficili per le applicazioni software.
Se c'è un serio intento di vedere come JMP può soddisfare le tue esigenze in relazione ad altri software (incluso SAS), allora so che il team JMP locale sarebbe più che felice di coinvolgerti e aiutarti a capirlo.
Re: analogia JMP con SAS 'Grazie mille per il vostro gentile feedback. Forse non mi sono reso abbastanza chiaro.
Visto che sono più che nuovo di JMP, sarei più un puntatore a cui puntare
quale gruppo JMP o elenco I potrebbe pubblicare la mia domanda su come filtrare un JMP
set di dati in un sottoinsieme dalla condizione "misisngs". Mi rendo conto ora di come
formulato il "soggetto" sul mio post originale, è più che fuorviante.
Purtroppo, ho notato che dopo era già uscito e troppo tardi ...
Oggetto: analogia JMP con SAS: filtrare i dati per valore mancante in una colonnaChiudi, ma ....
//open data table
dt1 = Open( "$SAMPLE_DATA/Cities.jmp" );
//select all rows of data table where column CO is missing
dt1 << Select Where( Is Missing( :CO ) );
//create a subset of data table with only selected rows, keeping all columns
dt1 << subset( selected rows( 1 ) );
//note that renaming and saving can be done in one step [DOESNT WORK: SAVED dataset still contains all (N=52) data rows instead of selected (N=5) rows]
dt2 << save( "V:/Process/.../Data/AnewDEMOname.jmp" );
Ho anche provato una variante come
Close( dt2, save( "V:/Process/.../Data/AnewDEMOname.jmp" ) );
Semplicemente non funziona. Il set di dati SAVED contiene ancora tutte le righe di dati (N = 52) anziché le righe selezionate (N = 5)].
È un bug JMP?
Sto usando JMP ® 14.0.0 (64-Bit) su Microsoft Windows 10 Enterprise 64-bit.
Oggetto: analogia JMP con SAS: filtrare i dati per valore mancante in una colonnaScusa, mi sembra di aver perso l'incarico di dt2 in.
Dovrebbe essere:
//open data table
dt1 = Open( "$SAMPLE_DATA/Cities.jmp" );
//select all rows of data table where column CO is missing
dt1 << Select Where( Is Missing( :CO ) );
//create a subset of data table with only selected rows, keeping all columns
//note the assignment of the result of the subset into the variable dt2
dt2 = dt1 << subset( selected rows( 1 ) );
//note that renaming and saving can be done in one step
dt2 << save( "V:/Process/.../Data/AnewDEMOname.jmp" );
Ho intenzione di correggere il post precedente in modo che nessuno a leggere questo più tardi venga confuso.
Mie scuse. Per favore continua a farci sapere dei tuoi progressi.
Re: analogia JMP con SAS 'Seguendo su @ian_jmp la risposta, ha ragione, questo è il posto per porre le tue domande su JMP.
Tutti i membri qui saranno felici di aiutarti a indirizzarti nella giusta direzione. Continua a fare domande e lascia che ti aiutiamo.
Detto questo, il modo migliore per imparare JSL è imparare a usare JMP in modo interattivo. Cerca di non fare supposizioni su come fare le cose in base al modo in cui le faresti in SAS. I due prodotti, JMP e SAS sono costruiti con modelli di utilizzo diversi, quindi fanno le cose in modo diverso.
La maggior parte del linguaggio di scripting si basa sull'automazione di JMP usando gli stessi comandi che useresti per fare le cose in modo interattivo. Ad esempio, nella tua domanda iniziale volevi sapere:
Fondamentalmente, vorrei aprire CITIES.JMP e mantenere tutte le righe (e i campi) che hanno un valore mancante in CO, e possibilmente salvare questo sottoinsieme con una nuova, ad esempio CITIES_MISS.jmp.
Il modo per farlo in modo interattivo è aprire CITIES.JMP, selezionare tutte le righe in cui manca CO e quindi usare Tabelle-> Sottoinsieme per creare una nuova tabella di dati.
Di conseguenza, la JSL fa seguire lo stesso schema:
//open data table
dt1 = Open("$SAMPLE_DATA/Cities.jmp");
//select all rows of data table where column CO is missing
dt1 << Select Where(is Missing(:CO));
//create a subset of data table with only selected rows, keeping all columns
dt2 = dt1 << subset(selected rows(1));
//note that renaming and saving can be done in one step
dt2 << save("A new name.jmp");
Tu hai detto:
Se JMP non è in grado di gestire la maggior parte dei semplici processi ETL, dovremmo procedere senza JMP.
Sarebbe un peccato, però, perché il suo portafoglio di analisi sembra essere carino e dandy.
Penso che la maggior parte qui direbbe che JMP può gestire processi ETL semplici (e complessi!). Quindi, se non riesci a capire come farlo, basta chiedere.
Ecco una lista di le migliori risorse per l'apprendimento di JMP.
Facci sapere come continuerai ad esplorare JMP e saremo felici di aiutarti.
[Nota 20 maggio2019: il codice sopra è stato corretto per mostrare un'assegnazione a dt2. Originariamente questo è stato accidentalmente omesso. Post successivi lo hanno notato ed è stato corretto qui.]
Oggetto: analogia JMP con SAS: filtrare i dati per valore mancante in una colonnaORA ha funzionato. Come un fascino Molte grazie.