Re: Elaborazione batch di file per estrarre i dati in una tabella di riepilogoPrima di iniziare il ciclo, crea una nuova tabella con le colonne Nome file e Area e formattale come desideri. Il modo più semplice è creare una nuova tabella e quindi utilizzare Copy Table Script. Ricorda anche di assegnare una variabile di riferimento a quella tabella!

Quindi nel ciclo dopo aver calcolato l'area puoi ottenere il nome della tabella utilizzando << Ottieni nome e quindi aggiungi le nuove righe alla tabella della raccolta con << Aggiungi righe(). Ricorda inoltre di chiudere tabelle e report non necessari dopo aver ottenuto le informazioni pertinenti da essi.
Names Default To Here(1);
dt_collector = New Table("Untitled",
Add Rows(0),
New Column("File Name", Character, Nominal, Set Values({})),
New Column("Area", Numeric, "Continuous", Set Values([]))
);
// For(..
// ...
//dt_name = dt << Get Name;
dt_name = "table";
area = 123;
dt_collector << Add Row({File Name = dt_name, Area = area});
//);
Oggetto: Elaborazione in batch dei file per estrarre i dati in una tabella di riepilogoHo aggiunto il codice che creerà una nuova tabella di dati e scriverà il nome del file e l'area nella nuova tabella
Names Default to Here( 1 );
//point to file directory
path = Pick Directory( "Select Directory Containing Data Files" );
//Gets the list of files in the selected file folder
file_list = Files In Directory( path );
// Crete beginnings of output data table
dtFinal = New Table( "Final", New Column( "File Name", Character ), New Column( "Area" ) );
//i=0;open file
nfile_list = N Items( file_list );
For( i = 1, i <= nfile_list, i += 1,
//Set Current Directory( dir_DirectoryPath );
dt = Open( path || file_list[i], );
//Calculate area
dt = Current Data Table();
dt << clear row states;
obj3 = dt << Bivariate(
invisible,
Y( :Name( "Data" ) ),
X( :Time ),
Fit Polynomial( 6, {Line Color( {212, 73, 88} )} ),
SendToReport( Dispatch( {}, "Bivar Plot", FrameBox, {Frame Size( 449, 411 )} ) )
);
//save graph to data dable
obj3 << Save Script to Data Table( "Area" );
//get the prediction formula string and calculate the area under the curve for 30 minute adsoription
fm = Report( obj3 )[Outline Box( "Polynomial ?" )][Text Edit Box( 1 )] << get text;
//get the string to the right of the equal sign and convert the string to an expression using Parse()
fm = Parse( Trim( Word( 2, fm, "=" ) ) );
area = Integrate( fm, :Time, 0, 3600 );
Caption( "The area under this curve is " || Char( area ) );
Print( area );
// Add information to Final data table
dtFinal << add rows( 1 );
dtFinal:File Name[N Rows( dtFinal )] = file_list[i];
dtFinal:area[N Rows( dtFinal )] = area;
);Oggetto: Elaborazione in batch dei file per estrarre i dati in una tabella di riepilogoGrazie! Hai dato anche una bella spiegazione dettagliata. Facile da seguire 
Oggetto: Elaborazione in batch dei file per estrarre i dati in una tabella di riepilogoGrazie! Ho visto prima l'altra risposta, ma mi piace anche questa.
File di elaborazione in batch per estrarre i dati in una tabella di riepilogoHo più file su cui voglio eseguire alcune analisi. Voglio creare un ciclo per aprire il file, eseguire l'analisi, calcolare un valore "area sotto una curva" in questo esempio e quindi creare una tabella riassuntiva con il nome del file e l'area. Posso aprire i file da una cartella ed eseguire l'analisi. Non sono sicuro di come creare la tabella di riepilogo. Ho fornito un esempio con 2 file ma ho molti più file che vorrei elaborare in questo modo. Qualsiasi aiuto o guida è molto apprezzato! Inoltre, per favore fatemi sapere se questo non ha senso o se sono necessarie ulteriori informazioni.
//point to file directory
path = Pick Directory( "Select Directory Containing Data Files" );
//Gets the list of files in the selected file folder
file_list = Files In Directory( path );
//i=0;open file
nfile_list = N Items( file_list );
For( i = 1, i <= nfile_list, i += 1,
//Set Current Directory( dir_DirectoryPath );
dt = Open( path || file_list[i], );
//Calculate area
dt = Current Data Table();
dt << clear row states;
obj3 = dt << Bivariate(
Y( :Name( "Data" ) ),
X( :Time ),
Fit Polynomial( 6, {Line Color( {212, 73, 88} )} ),
SendToReport( Dispatch( {}, "Bivar Plot", FrameBox, {Frame Size( 449, 411 )} ) )
);
//save graph to data dable
obj3 << Save Script to Data Table( "Area" );
//get the prediction formula string and calculate the area under the curve for 30 minute adsoription
fm = Report( obj3 )[Outline Box( "Polynomial ?" )][Text Edit Box( 1 )] << get text;
//get the string to the right of the equal sign and convert the string to an expression using Parse()
fm = Parse( Trim( Word( 2, fm, "=" ) ) );
area = Integrate( fm, :Time, 0, 3600 );
Caption( "The area under this curve is " || Char( area ) );
Print( area );
);
Esempio di tavolo finale che vorrei avere:

Qualsiasi aiuto con questo sarebbe molto apprezzato. Grazie
Personalizzazione di massa