come creare uno script per importare xls in jmpho un problema con l'importazione di file xls in jmp utilizzando lo script
voglio importare questo file usando la riga "7" come intestazione e aggiungere la nuova colonna "ID lotto" riempire i dati come dati della cella B3 (B6C141-02B5) nella nuova colonna
come posso fare questo
grazie

Tabella datiRi: come creare uno script per importare xls in jmpCome accennato sia da txNelson che da Ian, la tua tabella di dati non ha un formato davvero buono per un'analisi statistica, tuttavia questo è purtroppo abbastanza spesso il caso nell'industria, specialmente quando vengono utilizzati principalmente strumenti per fogli di calcolo. I dati statistici dovrebbero essere in colonne e righe in forma rettangolare quando possibile. Altrimenti è necessario specificare ogni cella per il calcolo invece di utilizzare vettori e matrici, che sarebbero molto più efficienti. Ecco perché txNelson ha importato il foglio due volte ed ha estratto le informazioni, come ha fatto Ian in una fase simile.
Qualche tempo fa ho tenuto una presentazione di scoperta sui suggerimenti per l'importazione di dati da Excel che credo valga ancora: Come aggirare-le-insidie-comuni-lavorando-con-i-dati-Excel-in-JMP (2016 JMP Discovery Summit Europe)
Ha anche scritto alcuni blog sull'importazione da Excel. Casi diversi dal tuo ma forse utili per altre situazioni:
Blog di Martin su Excel e JMP
Ri: come creare uno script per importare xls in jmpPenso che avrai bisogno di conoscere un po' di JSL, e questo dovrebbe farti iniziare. L'approccio "migliore" sarà determinato da ciò che puoi (e non puoi) assumere sulla struttura dei dati oltre all'esempio che hai fornito.
Questo codice non è affatto robusto e presuppone che il tuo file si trovi nella cartella "download". Se guardi "Aiuto > Libri > Guida allo scripting" puoi probabilmente capire cosa sta facendo (a seconda di quanta esperienza di codifica hai).
NamesDefaultToHere(1);
dt = Open("$DOWNLOADS/test_import.xlsx");
lid = Column(dt, 2)[2];
colNames = {};
InsertInto(colNames, Column(dt, 1)[11]);
InsertInto(colNames, Column(dt, 2)[11]);
InsertInto(colNames, Column(dt, 3)[7]);
InsertInto(colNames, Column(dt, 4)[7]);
InsertInto(colNames, Column(dt, 5)[7]);
InsertInto(colNames, Column(dt, 6)[7]);
InsertInto(colNames, Column(dt, 1)[2]);
dt << deleteRows(1::11);
for(c=1, c<=NItems(colNames), c++, Column(dt, c) << setName(colNames[c]));
Column(dt, colNames[NItems(colNames)]) << setValues(Repeat(lid, NRows(dt)));
dt << setName("Data for lot "||lid);Ri: come creare uno script per importare xls in jmpEcco lo script per inserire i tuoi dati
Ho utilizzato la procedura guidata Excel di JMP per aprire il file in modo interattivo, quindi ho copiato lo script di origine creato da JMP per inserirlo nello script.Lo script legge il file due volte.Prima per leggere i dati, quindi la seconda volta per leggere l'ID lotto.Ho quindi appena aggiunto il codice per consentire di selezionare il file Excel da importare e il JSL necessario per creare la nuova colonna ID lotto.
names default to here(1);
path = Pick File();
dt = Open(
path,
Worksheets( "Sheet1" ),
Use for all sheets( 1 ),
Concatenate Worksheets( 0 ),
Create Concatenation Column( 0 ),
Worksheet Settings(
1,
Has Column Headers( 1 ),
Number of Rows in Headers( 7 ),
Headers Start on Row( 6 ),
Data Starts on Row( 13 ),
Data Starts on Column( 1 ),
Data Ends on Row( 0 ),
Data Ends on Column( 0 ),
Replicated Spanned Rows( 1 ),
Replicated Spanned Headers( 0 ),
Suppress Hidden Rows( 1 ),
Suppress Hidden Columns( 1 ),
Suppress Empty Columns( 1 ),
Treat as Hierarchy( 0 ),
Multiple Series Stack( 0 ),
Import Cell Colors( 0 ),
Limit Column Detect( 0 ),
Column Separator String( "-" )
)
);
dtLotID = Open(
path,
Worksheets( "Sheet1" ),
Use for all sheets( 1 ),
Concatenate Worksheets( 0 ),
Create Concatenation Column( 0 ),
Worksheet Settings(
1,
Has Column Headers( 0 ),
Number of Rows in Headers( 7 ),
Headers Start on Row( 6 ),
Data Starts on Row( 3 ),
Data Starts on Column( 1 ),
Data Ends on Row( 0 ),
Data Ends on Column( 0 ),
Replicated Spanned Rows( 1 ),
Replicated Spanned Headers( 0 ),
Suppress Hidden Rows( 1 ),
Suppress Hidden Columns( 1 ),
Suppress Empty Columns( 1 ),
Treat as Hierarchy( 0 ),
Multiple Series Stack( 0 ),
Import Cell Colors( 0 ),
Limit Column Detect( 0 ),
Column Separator String( "-" )
)
);
lotID = dtLotID:Column 2[1];
close(dtLotID, nosave );
dt << New Column("Lot ID", Character, set each value(lotID));