Salut,
Pour un projet sur lequel je travaille, j'ai créé une colonne de tableau de données (Animal No.Avg) dans laquelle je calcule des valeurs relatives pour VO2 en fonction d'une valeur de référence (Treatment C) du tableau GroupAvg.


Dans ce cas, il n'y a qu'une seule valeur de référence par évaluation (VO2, QR, EE) comme on le voit dans groupAvg car il s'agit d'une moyenne sur plusieurs jours. Pour cela, j'ai créé le ci-dessous qui fonctionne bien:
VarVehicleVo2 = :Name( "Mean(Mean(VO2-[ml/min]))" )[Data Table( "GroupAvg" ) <<
Get rows Where( Contains( :Treatment, "C" ))];
Animal No.Avg << New Column( "VO2 absolute relative (%)",
Numeric,
"Continuous",
Format( "Best", 12 ),
Formula(
Local( {t0 = VarVehicleVo2()},
(:Name( "Mean(Mean(VO2-[ml/min]))" ) / t0) * 100
)
)
);Maintenant, je dois refaire la même chose, seulement maintenant la table de données (GroupAvgSEM) contient aussi des jours et les valeurs relatives doivent être calculées pour chaque jour (-6 jusqu'à 30).
Bien sûr, je peux faire la même chose que ci-dessus et le répéter pour tous les jours, créant ainsi un script très long avec une variable locale pour chaque jour mais cela semble un peu extrême.
Je cherchais à créer un sous-ensemble des données du traitement C et à les diviser (en jours) afin de les parcourir en boucle dans la formule :
VarTable = GroupAvgSEM << select where(
Contains( :Treatment, "ehicle" )) << subset(
output table name( "VarTable" ), selected rows( 1 ), selected columns( 0 ));
VarVO2 = VarTable << split(
Output table name("VarVO2"),
Split By( :Day no ),
Split( :Name( "Mean(Mean(VO2-[ml/min]))" ) ),
Remaining Columns( Drop All ),
Sort by Column Property
);
Animal No.Avg << New Column("VO2 absolute relative (%)",
Numeric, <BR /> Formula(
Local( {//loop through VarVO2 column values},
(:Name( "Mean(Mean(VO2-[ml/min]))" ) / /*VarVO2 column values*/) * 100
))
);Est-ce possible ou dois-je m'y prendre autrement ?
Frère Julie
Essaye ça
dt = Data Table("Animal No.Avg");
tb = dt <<
Tabulate(
Show Control Panel( 0 ),
Add Table(
Column Table(
Analysis Columns( :Name( "Mean(VO2-[ml/min])" ) ),
Statistics( Mean )
),
Row Table( Grouping Columns( :Day no ) )
),
Local Data Filter(
Add Filter( columns( :Treatment ), Where( :Treatment == "C" ) )
)
);
dt1 = tb << make into data table;
dt2 = dt << Join(
With( dt1 ),
Select(
:Treatment,
:Animal No.,
:Day no,
:N Rows,
:Name( "Mean(VO2-[ml/min])" ),
:Name( "Mean(RQ)" ),
:Name( "Mean(EE-[kcal/h])" )
),
SelectWith( :Name( "Mean(Mean(VO2-[ml/min]))" ) ),
By Matching Columns( :Day no = :Day no ),
Drop multiples( 0, 0 ),
Include Nonmatches( 0, 0 ),
Preserve main table order( 1 )
);
dt2 << New Column("Relative VO2",
Formula(:Name( "Mean(VO2-[ml/min])" )/:Name( "Mean(Mean(VO2-[ml/min]))" ) * 100)
);
tb << Close Window;
close(dt1, NoSave);