Choose를 사용하여 열의 값 설정Choose 함수를 사용하여 열에 값을 설정하는 데 간단한 문제가 있는 것 같습니다. 아래는 원하는 출력을 보여주는 표와 함께 테스트 스크립트입니다.
Names Default To Here( 1 );
startTime = 3742070400;
endTime = 3742074000;
dt = New Table( "Test",
Add Rows( 60 ),
New Column( "Timestamp", Format( "m/d/y h:m", 19 ), Set Display Width( 175 ) )
);
For Each Row( :Timestamp[] = Sequence( startTime, endTime, 60 ) );
aggOption = 1; // This will eventually be a pulldown menu with choices
New Column( "Agg Minute",
Numeric,
"Ordinal",
Format( "Best", 12 ),
Set Display Width( 116 )
);
// Script below is the problem. I tried For Each Row and Set Values and a combination
// of both but the column always is blank. See Interpolated Data table for what it
// should look like.
dt:"Agg Minute"n << For Each Row(
Choose( aggOption,
If(
Minute( :Timestamp ) < 15, 15,
Minute( :Timestamp ) < 30, 30,
Minute( :Timestamp ) < 45, 45,
0
),
If(
Minute( :Timestamp ) < 14, 0,
Minute( :Timestamp ) < 29, 15,
Minute( :Timestamp ) < 44, 30,
45
),
If(
0 < Minute( :Timestamp ) <= 15, 15,
15 < Minute( :Timestamp ) <= 30, 30,
30 < Minute( :Timestamp ) <= 45, 45,
0
)
)
);
스크립트를 실행하면 Agg Minute 열이 비어 있는 것을 알 수 있습니다. Set Values와 For Each Row를 시도해 보았고 두 가지를 조합해 보았지만 제대로 작동하지 않는 것 같습니다.
언제나 그렇듯이, 어떠한 도움도 감사히 여깁니다.
감사해요.
자동화 및 스크립팅맥 OSRe: Choose를 사용하여 열의 값 설정로컬 변수를 설정하면 열 수식으로 작동하게 할 수 있습니다. 하지만 그러면 콤보 상자 결과를 사용할 수 없습니다.
여기 그 코드가 있습니다. JSL에 대해 알아야 할 것이 분명히 더 많습니다. 코드를 자동 생성하는 것은 매우 쉽습니다. 하지만 종종 사용자 지정하려고 하면 깨지고 아직 고칠 만큼 충분히 알지 못합니다.
아아.
New Column( "Agg Minute",
Numeric,
"Ordinal",
Format( "Best", 12 ),
Set Display Width( 116 ),
Formula(
Local( {aggOption = 1},
Choose( aggOption,
If(
Minute( :Timestamp ) < 15, 15,
Minute( :Timestamp ) < 30, 30,
Minute( :Timestamp ) < 45, 45,
0
),
If(
Minute( :Timestamp ) < 15, 0,
Minute( :Timestamp ) < 30, 15,
Minute( :Timestamp ) < 45, 30,
45
),
If(
0 < Minute( :Timestamp ) <= 15, 15,
15 < Minute( :Timestamp ) <= 30, 30,
30 < Minute( :Timestamp ) <= 45, 45,
0
)
)
)
)
);Re: Choose를 사용하여 열의 값 설정For Each Row를 잘못 사용하고 있습니다. 열에 보내지 않고, (선택 사항) 데이터 테이블과 본문 인수로 제공하는 함수이며 본문 내에서 열에 값을 설정할 수 있습니다.
여기 고정된 버전이 있습니다
Names Default To Here(1);
startTime = 3742070400;
endTime = 3742074000;
dt = New Table("Test",
Add Rows(60),
New Column("Timestamp", Format("m/d/y h:m", 19), Set Display Width(175))
);
For Each Row(:Timestamp[] = Sequence(startTime, endTime, 60));
aggOption = 1;
New Column("Agg Minute", Numeric, "Ordinal", Format("Best", 12), Set Display Width(116));
For Each Row(dt,
:"Agg Minute"n = Choose(aggOption,
If(
Minute(:Timestamp) < 15, 15,
Minute(:Timestamp) < 30, 30,
Minute(:Timestamp) < 45, 45,
0
),
If(
Minute(:Timestamp) < 14, 0,
Minute(:Timestamp) < 29, 15,
Minute(:Timestamp) < 44, 30,
45
),
If(
0 < Minute(:Timestamp) <= 15, 15,
15 < Minute(:Timestamp) <= 30, 30,
30 < Minute(:Timestamp) <= 45, 45,
0
)
)
);Re: Choose를 사용하여 열의 값 설정고맙습니다, Jarmo. 정말 잘 먹혔어요.