두 개의 중첩 루프를 만드는 방법은 무엇입니까?안녕하세요 - 이 워크플로를 따르는 스크립트를 작성하려고 합니다.
1 - 특정 시작 날짜 시간에 루프를 시작합니다(예: 2021년 10월 1일 오전 11:00).이것을 n행이라고 칭하겠습니다.col1[row n]에서 값을 얻습니다.
2 - 다음 행, n+1로 이동합니다. col2 = col1 [n+1] - col1[n]을 설정합니다.
3 - 다음 행으로 이동, n+2, col2 = col1 [n+2] - col1[n] 설정
4 - 다음 행 n+3으로 이동하고 col2 = col1[ n+3] - col1[n]으로 설정합니다.datetime[n+k] = datetime[n] + 7일까지 각 후속 행을 계속 반복합니다.(k는 루프가 진행됨에 따라 행 사이의 시간 증분에 따라 달라집니다. 예를 들어 시간은 해당 행에 따라 한 행에서 다음 행으로 5분, 15분, 1시간 등 증가합니다.)
5 - 4단계에서 얻은 새 "시작 날짜"를 사용하여 데이터의 새 주마다 1~4단계를 반복합니다. 다른 7일 동안의 데이터를 계속 반복합니다.
6 - 데이터 테이블에 행이 부족할 때까지 5단계를 반복합니다.
목표는 한 주의 행 값을 해당 주의 첫 번째 행과 비교하는 col1 데이터에 대한 계산을 수행한 다음 모든 다음 주(2주, 3주, 4주 등)에 대해 이를 반복하는 것입니다. 행이 처리되었습니다.: )
스크립팅Re: 두 개의 중첩 루프를 만드는 방법은 무엇입니까?예상되는 데이터가 포함된 작은 데이터 테이블을 제공할 수 있습니까?또는 최소한 사용 중인 데이터 테이블이 어떻게 생겼습니까? 열 수식이 더 간단한 솔루션인 것처럼 들립니다.
Re: 두 개의 중첩 루프를 만드는 방법은 무엇입니까?이런 말을 할 수도 있을 것 같은데요?
Names default to here(1);
dt = New Table( "Untitled 1133",
Add Rows( 5 ),
New Column( "Week1",
Numeric,
"Continuous",
Format( "d/m/y h:m:s", 22, 0 ),
Input Format( "d/m/y h:m:s", 0 ),
Set Values( [3716957885, 3716957886, 3716957887, 3716957888, 3716957889] )
),
New Column( "Week2",
Numeric,
"Continuous",
Format( "d/m/y h:m:s", 22, 0 ),
Input Format( "d/m/y h:m:s", 0 ),
Set Values( [3716957885, 3716957886, 3716957887, 3716957888, 3716957889] )
),
New Column( "Week3",
Numeric,
"Continuous",
Format( "d/m/y h:m:s", 22, 0 ),
Input Format( "d/m/y h:m:s", 0 ),
Set Values( [3716957885, 3716957886, 3716957887, 3716957888, 3716957889] )
)
);
nc = ncols(dt);
for(i=1, i<=nc, i++,
col_name = column(i) << Get Name(); // get the original column name
Eval(EvalExpr( // you have to do this so you can substitute in the actual col_name instead of a variable
dt << New Column(col_name || " comparison",
// just take current row minus first row
formula(Expr(column(dt, col_name))[row()]-Expr(column(dt, col_name))[1])
)
));
);
Re: 두 개의 중첩 루프를 만드는 방법은 무엇입니까?확신하는.감사합니다.첨부 파일은 예제로 Excel에서 생성한 데이터 세트의 스니펫입니다.
Re: 두 개의 중첩 루프를 만드는 방법은 무엇입니까?빈스 감사합니다.저는 지금 이 일을 겪고 있습니다. JSL 초보자(!)로서 귀하의 접근 방식을 따르는 데 도움이 될 몇 가지 질문이 있습니다.새 데이터 테이블에 5개의 행이 추가된 이유는 무엇입니까?"값을 설정"해야 하는 이유는 무엇이며 이 다섯 개의 숫자를 선택한 이유는 무엇입니까?귀하의 스크립트는 3주 동안이지만 실제 데이터 세트에는 약 120주가 있습니다.
마지막으로 스크립트는 계산할 값(예: 내 예에서 "흐름")이 어떤 열인지 어떻게 알 수 있습니까?(내 데이터 테이블에는 내 예에 표시된 3개보다 더 많은 열이 있습니다.) 열을 전환하는 것보다 열 이름을 할당하는 것이 더 쉽지 않을까요?여기서 뭔가 놓치고 있는 것 같습니다.