Hi,
I am working on script and ran into problem/bug. I would to validate this or at least understand what is happening.
Here is what I am trying to do: I have a time series of data for a bunch of samples and I want to generate a column that compares the measured value to that when the sample was first meaured. Basically a (Y0-Y)/Y0.
Do do that I generate a subset where the first data reading for each sample (which may not be count =1). I then get the important parameters by doing a table update to the subset. Changes some names for clarity purposes and Then update the original data table with the intial reading data such that I have a column of Y and seperate column of Y0.
The last step causes a problem. The subset table has a column names Cycle_num which represents the minimum value on a per sample basis. The orginal also has one with that name but includes all the different point. The last table update matches on sample id and specifies the columns to add. The list specifically does NOT include cycle_num. Nor is cycle_num used as a match column. Upon table updating the data in cycle_num in the original table has been changed to the values from the subtable. The work around is to delete the cycle_num column from the subtable before using it in the last update step.
Has anyone seen a bug like this or are all columns sharing names always used in matches and updated even if not specifically called to?
Andy
//Get initial Data note: first run may not be at 1 so use min
dt1=dt<<Summary(
Group( :device_id, :sweep_direction,:temporal_point_type ),
Min( :cycle_num ),
Freq( "None" ),
Weight( "None" ),
statistics column name format( "column" ),
Link to original data table( 0 )
);
//get rid of mid values
dt1<<Select Where(:temporal_point_type == "mid");
dt1<<delete rows;
//get important initial data
dt1 << Update(
With( Data Table( dt) ),
Match Columns(
:device_id = :device_id,
:sweep_direction = :sweep_direction,
:temporal_point_type = :temporal_point_type,
:cycle_num = :cycle_num
),
Add Columns from Update table(
:tvis_bright,
:tvis_dark,
:l_star,
:a_star,
:b_star,
:Name( "ChargeTransfer [mC/cm2]" )
)
);
// Do some clean up to prevent name collision and bring into base table
Data Table (DT1);
:tvis_bright<<Set Name("TVB0");
:Name( "ChargeTransfer [mC/cm2]" ) <<Set Name("CT0");
:tvis_dark<<Set Name("TVD0");
:l_star<<Set Name("LS0");
:a_star<<Set Name("AS0");
:b_star<<Set Name("BS0");
dt1<<delete columns(:cycle_num); //added as work around solution
dt<<
Update(
With(Data Table(Dt1)),
Match Columns( :device_id = :device_id, :sweep_direction = :sweep_direction ),
Add Columns from Update table(:TVB0,:TVD0,:CT0,:LS0,:AS0,:BS0 ),
);