안녕하세요,
내가 작업하고있는 프로젝트의 경우 GroupAvg 테이블의 기준 값 (처리 C)을 기반으로 VO2에 대한 일부 상대 값을 계산하는 데이터 테이블 열 (Animal No.Avg)을 만들었습니다.


이 경우 groupAvg에서는 평균 며칠이므로 평가 당 하나의 기준 값 (VO2, RQ, EE) 만 있습니다. 이를 위해 잘 작동하는 아래를 만들었습니다.
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
)
)
);이제 다시 동일한 작업을 수행해야합니다. 이제 데이터 테이블 (GroupAvgSEM)에만 요일이 포함되며 매일 상대적인 값을 계산해야합니다 (-6 ~ 30).
물론 위와 동일하게 하루 종일 반복하여 매일 로컬 변수가있는 매우 긴 스크립트를 만들 수 있지만 약간 극단적 인 것처럼 보입니다.
처리 C 데이터를 하위 집합으로 분류하고 수식 내에서 반복하기 위해 (일) 분할했습니다.
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
))
);가능합니까 아니면 다른 방법으로 진행해야합니까?
브릴리
이 시도
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);