두 개의 중첩 루프를 생성하려면 어떻게 해야 합니까?안녕하세요 - 이 워크플로를 따르는 스크립트를 작성하려고 합니다.
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: 두 개의 중첩된 루프를 생성하려면 어떻게 해야 합니까?좋아, 당신이 말하는 것처럼 들린다.
각 흐름에서 매일 가장 빠른 흐름 지점을 뺍니까?그게 당신이하려는 것입니까?오전 13시 15분이 중요하지 않다고 생각하기 때문에 추측하고 있습니다.:디
Names default to here(1);
dt = current data table(); // this assumes your table
// I'm going to make a bunch of extra columns to kind of show you smaller steps
// we really want to be able to say, This is the first row of the day
// so let's make a date column
dt << New Column("Just Date", <<FORMULA></FORMULA>
하루 동안 가장 작은 행이 있으면 차이를 계산하려는 열 수만큼 마지막 새 열만 여러 번 수행하면 됩니다.
중첩된 for 루프에 대한 귀하의 원래 질문에 확실히 답하지 않았기 때문에 제가 일을 지나치게 복잡하게 만들지 않았기를 바랍니다.
Re: 두 개의 중첩된 루프를 생성하려면 어떻게 해야 합니까?방금 말씀하신 내용에 대한 샘플 표를 만들었습니다.방금 오늘() + 행당 1초로 만들었습니다.
나는 당신의 테이블에 대해 아무것도 몰랐기 때문에 모든 열을 수행하도록 만들었습니다.
귀하의 원래 게시물을 이해할 수 없습니다.
Re: 두 개의 중첩된 루프를 생성하려면 어떻게 해야 합니까?이 스크립트는 5개의 행과 다음 6개의 열이 있는 새 테이블을 생성했습니다.
1주차, 2주차, 3주차, 1주차 비교, 2주차 비교, 3주차 비교.
(5개 행은 2021년 10월 13일 오전 8:18:05부터 2021년 10월 13일 오전 8:18:09까지의 날짜 시간에 대한 것입니다.)
원래 게시물에 설명된 계산 결과가 포함된 열인 기존 테이블에 하나의 새 열만 남기려고 합니다.원래 게시물의 설명에 따라 계산된 하나의 새 열과 함께 모든 원래 데이터 테이블 행을 갖게 됩니다.
Re: 두 개의 중첩된 루프를 생성하려면 어떻게 해야 합니까?도움이 된다면 제 실제 JMP 테이블이 첨부되어 있습니다.("Pred Formula LOG_ECOLI_PEAR" 열을 기반으로 계산하고 싶습니다.)
Re: 두 개의 중첩된 루프를 생성하려면 어떻게 해야 합니까?빈스 감사합니다.나는 지금 이것을 겪고 있습니다 .... JSL 초보자로서 (!) 귀하의 접근 방식을 따르는 데 도움이 될 몇 가지 질문이 있습니다.새 데이터 테이블에 5개 행을 추가한 이유는 무엇입니까?"값을 설정"해야 하는 이유는 무엇이며 이 다섯 개의 숫자가 선택된 이유는 무엇입니까?귀하의 스크립트는 3주 동안이지만 실제 데이터 세트는 약 120주입니다.
마지막으로 스크립트는 어떤 열이 계산할 값인지 어떻게 알 수 있습니까(예: 내 예에서는 "흐름")?(내 데이터 테이블에는 내 예제에 표시된 세 개보다 더 많은 열이 있습니다.) 열을 전환하는 것보다 열 이름을 지정하는 것이 더 쉽지 않습니까?여기에 뭔가 빠진 것 같습니다.
Re: 두 개의 중첩된 루프를 생성하려면 어떻게 해야 합니까?확신하는.감사합니다.첨부된 것은 예제로 Excel에서 만든 데이터 세트의 스니펫입니다.
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: 두 개의 중첩된 루프를 생성하려면 어떻게 해야 합니까?예상되는 데이터가 포함된 작은 데이터 테이블을 제공할 수 있습니까?또는 최소한 사용 중인 데이터 테이블이 어떻게 생겼습니까? 열 공식이 더 간단한 솔루션인 것 같습니다.